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

Why the jpexs tool not working when decompile swf file?

有人知道如何反编译 .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
    开头(最后三个字节是正常 SWF 的预期 43 57 53)。

  • 前两个字节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 OS)你可以解压SWF。
这就是direct OffZip file。将 Offzip.exe 复制到类似 c:\offzip\.

的文件夹中

现在通过运行cmd.exe打开命令行。输入 cd\offzip\(按 enter)。或者只需按住 shift 并右键单击 Offzip 文件夹,然后选择 "open command window here".

键入 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.