为什么反编译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
.
有人知道如何反编译 .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
.