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


34

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

+1

哪个版本的ActionScript? AS有两种完全不同的虚拟机。你应该指定。对于初学者,我建议阅读标准,它确实有帮助,但它可能会导致头发拉动和其他奇怪的反应。 22 3月. 132013-03-22 22:59:22

  0

有趣的问题。任何人都可以提供有关Flash RE主题的信息概述吗?文件和这些将不胜感激。 28 3月. 132013-03-28 14:06:11

2

现在已经有很多工具可以做这个快速的谷歌搜索。

一个例子是asdec

而且,这里是相关型号的问题"does-an-actionscript-decompiler-get-actionscript-from-dynamically-linked-as-file"

而且GnashLightspark是闪光的开源实现,应该是有趣的。


6

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

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


8

SWFWire Debugger使用一次来提取从闪存游戏AES密钥。它可以在执行时追踪函数及其参数。我觉得它非常有帮助。

  0

其网站提及Adobe Flash Player是必需的。这告诉我应用程序实际上呈现/播放闪光灯,这可能是危险的。你知道它是否呈现SWF? 04 4月. 132013-04-04 05:32:21

  0

是的。它是一个不是静态分析工具的调试器,因此它将运行SWF。但对于动态分析来说非常好。 04 4月. 132013-04-04 08:19:03

  0

@Lizz在同一网站上,SWFWire也提供了[静态分析反编译器](http://www.swfwire.com/decompiler)。我以前用它取得了巨大的成功,可以反编译SWF。 30 6月. 162016-06-30 20:03:06


12

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

+1

就像un update一样,Flare for Mac的当前版本仅适用于PowerPC。 03 2月. 152015-02-03 19:14:04

  0

'apt-get install flasm'的作品和程序易于使用。会推荐。 15 3月. 162016-03-15 07:41:00


14

我真的很喜欢Show my code网站。我多次使用它来反汇编SWF文件(完成了它的工作),并且由于它是一个Web服务,所以不需要安装。奖金:支持其他几种文件格式(例如,zend php编译结果,一些.net文件,...)。

  0

你如何看到该页面上的结果? 15 3月. 152015-03-15 22:07:21

  0

@AndersLindén我得到一个包含代码的文本框的结果页面,以及下载链接(源文件/压缩文件)。不要忘记填写“显示我的代码”按钮左侧的微小验证码。 17 3月. 152015-03-17 14:48:55

+1

该网站在8月16日之后似乎不再起作用。提交后,它只是重新加载页面而没有显示任何结果。 15 8月. 162016-08-15 06:53:55


2

我以前使用SWFTools(http://www.swftools.org)包进行swf文件分析。

该软件包中的swfextract工具允许您从swf文件中提取各种工件。

同一包中的swfdump工具可以反汇编所有版本的ActionScript(v1-3)。关于swfdump的好处是,它将以可读的p代码格式显示输出,这非常有助于分析。

此外,还有商业反编译器,如Sothink SWF反编译器和Flash反编译器Trillix。我没有使用它们的经验,也不能推荐他们的工作效果。


3

有一个IDA Pro plugin,它允许您像任何其他可执行文件一样反汇编SWF文件。


10

首先我会推荐阅读SWF文件格式和ActionScript的规范。我不会推荐阅读全部内容(它会让人觉得无聊)。只是前三四章。这将有助于建立关于结构和关键字的知识基础。这是我会推荐的两个。

SWF File Format PDF,PDF ActionScript Virtual Machine 2 (AVM2) Overview

一旦你有知识的基础上检查出的Flash漏洞攻击一些帖子。以下是没有特定顺序或值的帖子列表12,3,4,5, 6,7。搜索RE Reddit也是SWF/Flash分析的另一个很好的资源。

无论是好还是坏,攻击者社区已经完成了很多伟大的工作,用于反向工程SWF/ActionScript/Flash /等。有很多研究人员,我会建议谷歌跟踪他们的工作。李海飞是一位着名的人物。快速谷歌搜索文件类型:PDF +“Haifei Li”将带来很多很棒的资源。例如:link

如果您厌恶阅读,我建议下载一些样本。 Contagiodump是抢样的好地方。通常,该样本具有适当的CVE编号。这可能会有帮助,因为快速谷歌的CVE-number +“分析”将允许您在家中按照版本进行操作。当然你需要工具。我个人会推荐Lenny Zeltser的REMnux。此线程中列出的几乎所有工具都已安装在其中。如果您正在使用嵌入到文档中的SWF,我建议您使用xxxswf.py来提取它们。源代码没有那么严重的评论,所以它会给你一些关于文件结构的基础知识。 免责声明:我的工具。

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


1

我真的很喜欢Sothink的Flash Decompiler。虽然它是商业化的,但如果偶尔对反向工程文件进行逆向工程,它确实是值得的。

完整版(我拥有并使用)可以将整个SWF文件反编译回FLA,支持AS的最新版本(当其他免费工具不支持时),可以修改和运行SWF文件以及创建修改SWF版本,允许编辑所有的资源类型(不仅仅是代码),并且有一个功能丰富的GUI。


2

如果你关心主要是关于原始代码,我可以推荐你RABCDAsm

https://github.com/CyberShadow/RABCDAsm

这将产生非常可行的Actionscript字节码,也可以让你修补回来。