逆向工程开源引擎框架

逆向工程开源引擎框架
foresta.yang逆向工程开源引擎框架
Capstone, Keystone, Unicorn, Qemu 以及 QiLing 等工具
汇编与反汇编
Capstone
新加坡南洋理工大学团队在 Blackhat USA 2014 上发布的一个反汇编引擎
- Capstone 反汇编引擎 官网The Ultimate Disassembly Framework – Capstone – The Ultimate Disassembler (capstone-engine.org)
- 项目主页:https://github.com/aquynh/capstone
- 多平台 Windows、*nix
- 多架构,例如 Arm、Mips 和 x86
- 支持 C/Python 接口
Keystone
新加坡南洋理工大学团队在 Blackhat USA 2016 上发布的一个汇编框架
- Keystone 汇编框架 官网Keystone – The Ultimate Assembler (keystone-engine.org)
- 项目主页:https://github.com/keystone-engine/keystone
- 多平台:Windows、* nix
- 多架构,例如 Arm、Mips 和 x86
- 支持 C/Python 接口
二进制模拟执行
QEMU
QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件,一个通用的系统空间和用户空间仿真器和虚拟机
-
QEMU 虚拟机 官网
-
多平台:Windows、* nix
-
多架构,例如 Arm、Mips 和 x86
-
支持 C/Python 接口
Unicorn
新加坡南洋理工大学团队在 Blackhat USA 2015 上发布的轻量级多平台,多体系结构的CPU仿真器框架
Unicorn 引擎 CPU仿真框架 官网
- 项目主页:https://github.com/unicorn-engine/unicorn
- 多平台:Windows、* nix
- 多架构,例如 Arm、Mips 和 x86
- 支持 C/Python 接口
- 基于 QEMU
QEMU 提供了一个完整的仿真环境,既可以模拟硬件外设、整个系统,也可以模拟单个二进制程序。而 Unicorn 专注于 CPU 指令的仿真。
QiLing
京东团队在 Defcon 2019 上发布的高级二进制仿真框架
- 官网
- 项目主页:https://github.com/qilingframework/qiling
- 多平台:Windows、* nix
- 多架构,例如 Arm、Mips 和 x86
- 基于 Unicorn
Qiling 被设计为更高级别的框架,它利用 Unicorn 来模拟 CPU 指令,除此之外,还具有高级分析功能:执行动态检测,甚至可以在运行时热修补代码
总结
上述用于二进制逆向的开源工具,都提供了详细的使用方法,并且有团队一直在维护,对于研究二进制病毒、恶意样本分析大有裨益。例如,
- 修改固件、二进制,增加或者修改其中的指令,可以使用 Capstone/Keystone 进行汇编指令与二进制的转换;
- 跨平台仿真一些架构的二进制可执行文件, 可以使用 QEMU
- 二进制指令片段的模拟,可以使用 Unicorn、QiLing
笔者使用过其中的几个,且有想法去集成其中的一些功能,编写一个可视化工具。在这里只是进行简单的介绍,如果感兴趣,还是要实际操作一下。这些工具的官网都给出了使用教程,用起来还是比较简单的。