Flashmingo:SWF文件自动化分析工具

2019 年 4 月 29 日 FreeBuf

flashmingo是FireEye最新发布的一个用于自动分析SWF文件的框架。它可以自动对可疑的Flash文件进行分类,并进一步的指导分析过程。Flashmingo可作为独立的工具,也可以作为库的一部分集成到分析工作流中。

安装

安装requirements.txt文件中列出的Python (2.7)。

你可以使用以下命令进行安装:

pip install -r requirements.txt

如果要使用反编译功能,则需要安装Jython。Ubuntu/Debian用户可以使用下面的命令安装:

apt install jython

克隆该项目或下载zip文件。

目的

到目前为止,取证人员和恶意软件分析师仍必须对可疑的SWF文件进行处理。据悉,Adobe Flash将于2020年被弃用,弃用后系统将继续支持不再使用安全补丁更新的旧文件格式。而自动化是解决该问题的最佳方式,这也是FLASHMINGO可以为你提供帮助的地方。FLASHMINGO是一个用于自动处理SWF文件的分析框架,使分析人员能够以最小的努力对可疑的Flash样本进行分类并进一步调查。此外,用户还可通过自定义Python插件来轻松扩展其功能。

架构

FLASHMINGO的设计考虑了简洁性。它读取SWF文件并创建表示其内容和结构的对象(SWFObject)。然后,FLASHMINGO运行一系列插件作用于SWFObject对象,并将其值返回到主程序。

以下是ASCII流程图:

                               +----------+                                                 |          |                       +------------+----------->+ PLUGIN 1 +------------+                       |            |            |          |            |                       |            |            +----------+            |                       |            |                                    |                       |            |            +----------+            |                       |            |            |          |            |+---------+            |            +----------->+ PLUGIN 2 +--------+   ||SWF FILE +----------->+ FLASHMINGO |            |          |        |   |+---------+            |            |            +----------+        |   |                       |            |                                |   |                       |            |                                |   |                       |            |                                |   |                       |            |                          +-----v---v-+                       |            |                          |           |                       |            |                          |           |                       +-----+------+------------------------->+ SWFOBJECT |                             ^                                 |           |                             |                                 |           |                             |                                 +-----+-----+                             |                                       |                             |                                       |                             |                                       |                             +---------------------------------------+

在你自己的项目中使用FLASHMINGO作为库时,你只需处理两种类型的对象:

一个或多个SWFObject(s),代表样本。

一个Flashmingo对象。主要用作连接插件和SWFObject的线束(harness)。

插件

FLASHMINGO插件存储在它们自己的目录下...你猜对了:插件当Flashmingo对象被实例化时,它会遍历这个目录并处理所有插件的清单(manifests)。如果插件处于启用状态,则会注册该插件以供后续使用。在代码级别,这意味着将一个小的plugin_info字典添加到插件列表中。

通过run_plugin API的两个参数调用插件:

插件的名称

SWFObject实例

(可选)大多数插件允许你传递自己的用户数据。默认插件SuspiciousNames将在所有常量池中,搜索包含可疑字符串(例如:'overflow','spray','shell'等)的文件。插件中已包含了一个硬编码的常见字符串列表。但你也可以传递自己定义的字符串列表,在本例中为names参数。

代码示例:

fm = Flashmingo()print fm.run_plugin('DangerousAPIs', swf=swf)print fm.run_plugin('SuspiciousNames', swf=swf, names=['spooky'])

默认插件

FLASHMINGO还附带了其他一些非常实用的插件:

binary_data

dangerous_apis

decompiler

suspicious_constants

suspicious_loops

suspicious_names

template

扩展 FLASHMINGO

为便于开发,flashmingo还为我们提供了一个模板插件。扩展flashmingo非常简单,遵循以下步骤即可:

复制模板

编辑清单

覆盖run方法

添加自定义代码

FLASHMINGO 作为库

API

有关自动生成的文档,请参阅docs目录

有关示例,请参阅FireEye的博客文章

前端

Console

创建文档

$ pip install sphinxcontrib-napoleon

设置Sphinx构建文档后,在Sphinx conf.py文件中启用napoleon:

在conf.py中,将napoleon添加到extensions列表中

extensions = ['sphinxcontrib.napoleon']

使用sphinx-apidoc构建你的API文档:

$ sphinx-apidoc -f -o docs/source projectdir

这将创建.rst文件供Sphinx处理

$ make html

*参考来源:GitHub,FB小编secist编译,转载请注明来自FreeBuf.COM

推荐阅读


登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
Python导论,476页pdf,现代Python计算
专知会员服务
254+阅读 · 2020年5月17日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
136+阅读 · 2020年2月16日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
173+阅读 · 2020年1月1日
CALDERA 一款对手自动模拟工具
黑白之道
20+阅读 · 2019年9月17日
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
最新版本开源情报工具和资源手册(一)
黑白之道
9+阅读 · 2019年6月23日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
文本分析与可视化
Python程序员
8+阅读 · 2019年2月28日
15款免费预测分析软件!收藏好,别丢了!
七月在线实验室
10+阅读 · 2018年2月27日
【下载】PyTorch 实现的YOLO v2目标检测算法
专知
15+阅读 · 2017年12月27日
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
Deep learning for cardiac image segmentation: A review
Arxiv
21+阅读 · 2019年11月9日
Arxiv
15+阅读 · 2018年6月23日
Arxiv
10+阅读 · 2018年2月9日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
Python导论,476页pdf,现代Python计算
专知会员服务
254+阅读 · 2020年5月17日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
136+阅读 · 2020年2月16日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
173+阅读 · 2020年1月1日
相关资讯
CALDERA 一款对手自动模拟工具
黑白之道
20+阅读 · 2019年9月17日
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
最新版本开源情报工具和资源手册(一)
黑白之道
9+阅读 · 2019年6月23日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
文本分析与可视化
Python程序员
8+阅读 · 2019年2月28日
15款免费预测分析软件!收藏好,别丢了!
七月在线实验室
10+阅读 · 2018年2月27日
【下载】PyTorch 实现的YOLO v2目标检测算法
专知
15+阅读 · 2017年12月27日
相关论文
Top
微信扫码咨询专知VIP会员