: 逆向工程中的心理战
github.com/xoreaxeaxeax/repsych // domas // @xoreaxeaxeax
REpsych 工具集是一个概念验证,演示如何通过程序的控制流图(CFG)生成图像。
| 典型函数的 CFG | REpsych 生成的 CFG |
|---|---|
![]() | ![]() |
该项目没有特定的目的(除了展示这是可以做到的),但一些可能(非严肃的)应用已在 DEF CON 演讲中概述。
该工具集可在所有已测试版本的 IDA Pro 逆向工程工具上可靠运行,并且能在其他 CFG 查看器(Hopper、BinNavi、radare2 等)上较为可靠地运行。
该工具集将源图像转换为可运行的程序,使程序的控制流图生成源图像。
要从图像生成新程序:
make image,其中 “image” 是你的图像名称(不带扩展名)。将生成两个可运行的程序:repsych_v1 和 repsych_v2。每个程序都使用不同的策略来确保 CFG 渲染器正确定位 CFG 节点。
该工具会为源图像的每个像素创建一个基本块(CFG 节点);因此,应尽量使用较小的源图像(不超过 100x100),并且可能需要在 CFG 查看器中增加允许的节点数量。
当使用文本图像作为工具输入时,先将图像转换为 2 BPP 黑白位图,再转换为 24 BPP 位图;这将去除非黑白的颜色,并在控制流图中获得最佳效果。





该技术在 DEF CON 演讲中有详细阐述。
演讲幻灯片可在此处获取。
REpsych 是 Christopher Domas(@xoreaxeaxeax)的一个概念验证项目。