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

Flash 为什么jpexs工具在反编译swf文件时不工作?,flash,Flash,有人知道如何反编译.SWF文件吗 我试过JPEXS和Sothink SWF反编译器,但它不起作用 我把这个.swf放在这里面 谢谢。SWF不是用JPEXS打开的,因为它是压缩的 当文件(如swf、jpeg、mp3、mp4)未在任何程序中打开时,您应该做的第一件事是使用 检查您的文件字节: 通常SWF文件以字节43 57 53(例如:“CWS”)或甚至字节46 57 53(例如:“FWS”)开头 您的文件以78 DA 00 43 40 BC BF 43 57 53开头(最后三个字节是正常SWF的

有人知道如何反编译.SWF文件吗

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

我把这个
.swf
放在这里面


谢谢。

SWF不是用JPEXS打开的,因为它是压缩的

当文件(如swf、jpeg、mp3、mp4)未在任何程序中打开时,您应该做的第一件事是使用

检查您的文件字节:

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

  • 您的文件以
    78 DA 00 43 40 BC BF 43 57 53

    开头(最后三个字节是正常SWF的预期
    43 57 53

  • 前两个字节
    78da
    意味着它有一些ZLib压缩(例如:like 一个
    .zip
    文件)

解决方案
有两个选项可以装饰ZLib。一个是AS3代码,另一个是外部(Windows)工具

选项1)使用AS3解压

  • 获取库并将其
    as3zlib
    文件夹作为
    文件复制到与Flash项目
    相同的位置。(可在以下位置找到文件夹:
    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将3个字节保存到磁盘

选项2)使用外部ZLib工具

使用(Windows操作系统)可以解压缩SWF
这是最新的。将
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


我假设,文件已被模糊处理(防止反编译)。@Organi那么在这种情况下我能做什么呢?sir在这种情况下,您知道SWF的作者不希望您对其进行反编译,您尊重作者的意愿,并停止这样做。您好,先生,我使用,我的文件以:42 55 53 08 aa开头。如果是SWF文件,我该怎么办?您可以尝试将前2个字节从
42 55
更改为
43 57
。如果可能,显示更长的字节或共享指向SWF本身的链接。是的,它是一个SWF文件。我已改为as
4357
,并执行相同的教程,但无法提取它。我有一个,你凭什么认为这是SWF文件?你看到它工作了吗?它是如何工作的?字节看起来不像SWF,在浏览器中也不起作用(带有嵌入式Flash Player的HTML)。此文件位于网络游戏的资源中。该资源有许多类似于我给你的文件的文件。如果添加扩展名,它有2种类型:PNG和SWF。我在这里得到那个文件,你可以看到