gpt4 book ai didi

flash - 为什么反编译swf文件时jpexs工具不起作用?

转载 作者:行者123 更新时间:2023-12-05 05:11:48 25 4
gpt4 key购买 nike

谁知道如何反编译 .SWF 文件?

我试过 JPEXS 和硕思 SWF 反编译器,但它不起作用。

我把这个 .swf 放在这个 link 里.

谢谢。

最佳答案

SWF 不能用 JPEXS 打开,因为它是压缩!!。

当文件(例如:swf、jpeg、mp3、mp4)无法在任何程序中打开时,您应该做的第一件事是检查格式使用 hex editor 字节是正确的.

检查文件字节数:

通常 SWF 文件以字节 43 57 53(例如:"CWS")或什至字节 46 57 53 开头(例如: “FWS”)。

  • 您的文件以 78 DA 00 43 40 BC BF 43 57 53
    开头(最后三个字节是预期的 43 57 53一个普通的 SWF)。

  • 前两个字节 78 DA 表示它有一些 ZLib 压缩(例如: 比如.zip 文件)。

解决方案:
解压缩 ZLib 的两个选项。一种是通过 AS3 代码,另一种是通过外部 (Windows) 工具。

方案1)使用AS3解压。

  • 获取图书馆 AS3ZLib并将其 as3zlib 文件夹复制到与您的 Flash 项目 .as 文件相同的位置。 (在以下位置找到文件夹:src/com/wirelust/as3zlib/)。

  • 将 SWF 文件的字节加载(或读取)到名为 fileBytes 的 AS3 字节数组中。

试试这个代码逻辑:

import Zlib; //do import of API

....

public var zlibdecomp :Zlib; //create instance variable

....

public var fileBytes :ByteArray = new ByteArray;
public var swfBytes :ByteArray = new ByteArray;

//# SWF original file bytes load
fileBytes = ... ; //your loading code here

//# Decompress loaded into new SWF bytes
zlibdecomp = new Zlib; //create new ZLIB instance in variable
swfBytes = zlibdecomp.uncompress( fileBytes ); //update with decompress version
trace("swfBytes length (DEFLATED) : " + swfBytes.length); //is 8,617,377 bytes??

swfBytes 中的字节现在可以保存为文件 new.swf 并且可以在 JPEXS 中正确打开。使用 fileReference API 将 AS3 字节保存到磁盘。

选项 2) 使用外部 ZLib 工具。

使用 OffZip (对于 Windows 操作系统)您可以解压缩 SWF。
这是direct OffZip file .将 Offzip.exe 复制到类似 c:\offzip\ 的文件夹中。

现在通过运行 cmd.exe 打开命令行。输入 cd\offzip\(按 enter)。或者只需按住 shift 并右键单击 Offzip 文件夹,然后选择“在此处打开命令窗口”

键入 offzip -a vpt.swf(按 enter)。

你应该看到这样的输出......

C:\offzip>offzip -a vpt.swf

Offzip 0.4
by Luigi Auriemma
e-mail: aluigi@autistici.org
web: aluigi.org

- open input file: vpt.swf
- zip data to check: 32 bytes
- zip windowBits: 15
- seek offset: 0x00000000 (0)

+------------+-----+----------------------------+----------------------+
| hex_offset | ... | zip -> unzip size / offset | spaces before | info |
+------------+-----+----------------------------+----------------------+
0x00000000 .

................................................................................
................................................................................
................................................................................


................................................................................
................................................................................
.................................................................... 8496131 ->
8617377 / 0x0081a403 _ 0 8:7:26:0:1:2657f334


- 1 valid compressed streams found
- 0x0081a403 -> 0x00837da1 bytes covering the 100% of the file

现在可以在 JPEXS 中打开输出文件 00000000.cws。您可以将其重命名为 00000000.swf

关于flash - 为什么反编译swf文件时jpexs工具不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com