逆向工程开源引擎框架

逆向工程开源引擎框架

Capstone, Keystone, Unicorn, Qemu 以及 QiLing 等工具

汇编与反汇编

Capstone

新加坡南洋理工大学团队在 Blackhat USA 2014 上发布的一个反汇编引擎

Keystone

新加坡南洋理工大学团队在 Blackhat USA 2016 上发布的一个汇编框架

二进制模拟执行

QEMU

QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件,一个通用的系统空间和用户空间仿真器和虚拟机

  • QEMU 虚拟机 官网

  • 项目主页:https://github.com/qemu/qemu

  • 多平台:Windows、* nix

  • 多架构,例如 Arm、Mips 和 x86

  • 支持 C/Python 接口

Unicorn

新加坡南洋理工大学团队在 Blackhat USA 2015 上发布的轻量级多平台,多体系结构的CPU仿真器框架

Unicorn 引擎 CPU仿真框架 官网

QEMU 提供了一个完整的仿真环境,既可以模拟硬件外设、整个系统,也可以模拟单个二进制程序。而 Unicorn 专注于 CPU 指令的仿真。

QiLing

京东团队在 Defcon 2019 上发布的高级二进制仿真框架

Qiling 被设计为更高级别的框架,它利用 Unicorn 来模拟 CPU 指令,除此之外,还具有高级分析功能:执行动态检测,甚至可以在运行时热修补代码

总结

上述用于二进制逆向的开源工具,都提供了详细的使用方法,并且有团队一直在维护,对于研究二进制病毒、恶意样本分析大有裨益。例如,

  • 修改固件、二进制,增加或者修改其中的指令,可以使用 Capstone/Keystone 进行汇编指令与二进制的转换;
  • 跨平台仿真一些架构的二进制可执行文件, 可以使用 QEMU
  • 二进制指令片段的模拟,可以使用 Unicorn、QiLing

笔者使用过其中的几个,且有想法去集成其中的一些功能,编写一个可视化工具。在这里只是进行简单的介绍,如果感兴趣,还是要实际操作一下。这些工具的官网都给出了使用教程,用起来还是比较简单的。