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





该技术在 DEF CON 演讲 中有详细介绍。
演示文稿的幻灯片在此处提供。
REpsych 是 Christopher Domas(@xoreaxeaxeax)的概念验证。