如何对 SWF 文件进行逆向工程?

逆向工程 瑞士法郎 动作脚本
2021-06-28 00:39:53

有哪些工具和技术可以反编译或分析 SWF 文件中的字节码?逆向工程师可以使用哪些资源来了解有关 SWF 内部结构的更多信息?

4个回答

有很好的工具flasm,它是开源的,包含 flash 汇编器和反汇编器。还有flare,它是免费的,但是是闭源的,并且包含flash 反编译器。看起来两者都被放弃了(2007 年的最新更新),并且不支持 ActionScript 3,但是,也许有人可以扩展它们。

首先,我建议通读 SWF 文件格式和 ActionScript 的规范。我不建议全部阅读(它确实很无聊)。刚开始的三四章。这将有助于为结构和关键字奠定知识基础。这是我推荐的两个。

SWF 文件格式PDF、ActionScript 虚拟机 2 (AVM2) 概述PDF

一旦你有了知识的基础,请查看一些关于 Flash Exploits 的帖子。以下是在没有特定的顺序或值帖子的列表1234567搜索RE Reddit也是 SWF/Flash 分析的另一个好资源。

无论好坏,漏洞利用社区已经为逆向工程 SWF/ActionScript/Flash/等做了很多伟大的工作。有许多研究人员我会建议谷歌跟踪他们的工作。李海飞是一位著名人物。在谷歌上快速搜索 filetype:PDF +“李海飞”会带来很多很棒的资源。示例:链接

如果您厌倦了阅读,我建议您下载一些示例。Contagiodump是获取样本的好地方。通常,样本具有正确的 CVE 编号。这会很有帮助,因为快速搜索 CVE 编号 +“分析”将允许您在家中执行后续版本。当然,您将需要工具。我个人会推荐Lenny Zeltser 的REMnux该线程中列出的几乎所有工具都已安装在其中。如果您使用嵌入在文档中的 SWF,我建议使用xxxswf.py来提取它们。源代码并没有那么糟糕的评论,所以它会给你一些关于文件结构的基础知识。免责声明:我的工具。

我推荐的一些未列出的工具是TrillixYogoda 的Flash Decompiler 这两个工具都适用于 Windows。

曾经使用SWFWire Debugger从 Flash 游戏中提取 AES 密钥。它可以在执行时跟踪函数及其参数。我觉得它非常有帮助。

查看 Sebastian Porst 的工作 [1](特别是查看 /slides 目录以获得概述,然后可以从根目录找到其余的代码)。

[1] https://github.com/sporst/SWFREtools