1. 使用Pyhton编写,可以作为单独的应用程序运行,也可以作为IDAPython插件运行
2. 支持Windows/Linux/Mac
3. 彩虹PE比例图表:PE结构、大小和文件位置,快速PE样例对比
4. 支持以下PE头信息的树状显示
- MZ header
- DOS stub
- Rich headers
- NT/File/Optional headers
- Data directories
- Sections
- Imports
- Exports
- Debug information
- Load config
- TLS
- Resources
- Version information
- Certificates
- Overlay
5. 从以下位置提取和存储数据
- DOS stub
- Sections
- Resources
- Certificates
- Overlay
6. 可以将数据发送到CyberChef
7. 在VirusTotal搜索
- File hashes
- PDB path
- Timestamps
- Section hash/name
- Import hash/name
- Export name
- Resource hash
- Certificate serial
三、作为IDA的插件安装
1. 基本要求
- IDA Pro 7.0+ with Python 2.7
- IDA Pro 7.4+ with Python 2.7 or 3.x
2. 两种安装方式
setuptools:
$ git clone https://github.com/blackberry/pe_tree.git
$ cd pe_tree
$ python setup.py develop --ida
手动安装:
$ git clone https://github.com/blackberry/pe_tree.git
$ cd pe_tree
$ pip install -r requirements.txt
3. 将pe_tree_ida.py复制到IDA7.0的插件目录下:
OS
Plugins 文件夹目录
Windows
%ProgramFiles%\IDA Pro 7.X\plugins
Linux
/opt/ida-7.X/plugins
MacOS
~/.idapro/plugins
4. 运行IDA并点击
Edit -> Plugins -> PE Tree
四、PE tree for IDAPython效果测试
1. 运行PE Tree
这里笔者在Windows10下任意找了一个x64可执行文件做测试
2. PE文件彩虹结构效果
PE tree在IDA7.0中效果如下:
可以看到PE tree将PE文件的文件头信息以及各个段数据分层罗列,并使用彩虹颜色进行表示,形象且直观。各类PE信息较为齐全,在进行逆向分析的时候更加方便查询。
3. 段信息
点击.text段,可以查看text段信息,包括虚地址、Characteristics和比例等基本信息:
4. 发送数据
将数据发送至VirusTotal和CyberChef:
使用效果可以自行查验。另外,PE tree还可以很方便地转储各段的数据,提高逆向分析的效率。
5. 切换地址表示方式
地址表示方式可以在虚拟内存地址和相对虚拟内存地址之间切换,方便逆向工程师计算:
6. 双击跳转
PE tree保持了IDA的特性,双击各数据段可以非常方便地跳转到view窗口:
五、总结
PE tree作为软件逆向工程开源的PE工具,其便利的特性和“rainbow view”的PE文件结构高级概述可以提高对恶意软件分析的效率。这里笔者仅简单介绍PE tree和PE tree作为IDAPython插件的安装和使用方法。有兴趣的朋友可以去继续深入探索PE tree的各个功能,并从日常的逆向分析工作中看看是否能够提高自己逆向分析的效率。