mrT4ntr4/MODeflattener
GitHub: mrT4ntr4/MODeflattener
基于Miasm框架的OLLVM控制流扁平化反混淆工具,可将混淆后的状态机式控制流还原为可读结构。
Stars: 203 | Forks: 26
# MODeflattener
***Miasm 的 Ollvm 反混淆器 (Deflattener)***
混淆后的控制流 | 反混淆后的控制流
:-------------------------:|:-------------------------:
 | 
## 安装说明
```
git clone https://github.com/mrT4ntr4/MODeflattener.git
cd MODeflattener
pip3 install -r requirements.txt
```
## 使用说明
```
└──╼ $python3 modeflattener.py -h
usage: modeflattener [-h] [-a] [-l LOG] filename patch_filename address
positional arguments:
filename file to deobfuscate
patch_filename deobfuscated file name
address obfuscated function address
optional arguments:
-h, --help show this help message and exit
-a, --all find functions recursively and deobfuscate if flattened
-l LOG, --log LOG logging level (default=INFO)
```
### 支持的架构
- *x86*
### 额外功能
- [Tim Blazytko 的控制流扁平化启发式脚本](https://gist.github.com/mrphrazer/da32217f231e1dd842986f94aa6d9d37)
在对指定函数进行反汇编时,我们可以关注它使用的其他函数,并利用此脚本自动检测其是否经过控制流扁平化处理,进而尝试进行反混淆。此功能已集成到该工具中!
- [nop-hider idapython 脚本](https://gist.github.com/JusticeRage/795badf81fe59454963a06070d132b06)
该脚本用于在 IDA 图形视图中隐藏 nop 指令,因为在反混淆后,主干代码会被转换为一长串 nop 链。
# 参考文献
[Dissecting LLVM Obfuscator - RPISEC](https://rpis.ec/blog/dissection-llvm-obfuscator-p1/)
[Automated Detection of Control-flow Flattening - Tim Blazytko](https://synthesis.to/2021/03/03/flattening_detection.html)
标签:Deflattening, IDA插件, Miasm, OLLVM, Python, TLS抓取, x86架构, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码反混淆, 动态二进制插桩, 去混淆, 恶意代码分析, 控制流平坦化, 控制流还原, 无后门, 编译器混淆, 软件安全, 逆向工具, 逆向工程, 配置文件, 静态分析