有一个软件,我只有二进制文件,没有源代码。它的:
- 未混淆(因此,不是多态或任何东西。不过它已优化了一点)
- 未剥落的
- x86 32 位
- 值得信赖(不是可疑的恶意软件)
- 从 C++ 编译(基于符号表的内容)
- 可能使用 JNI(有几个原因;部分原因是它有相当数量的 UTF-16 字符串)
我不需要完整的调用图,只需要给定某些参数时的调用图/控制流。我所做的唯一逆向工程是使用 binutils + gdb + strace 的相对基本的东西。本质上,我只需要一个软件来匹配“call”和“ret”对,并将“call”指令目的地翻译成它们人类可读的符号名称。希望生成一个可读的 2D 图形图像,让我对应用程序执行有一种感觉。
所以,有些东西可以映射控制流。它只是一个单一的二进制文件(具有一些动态库依赖项),但它足够大,手动跟踪将非常耗费人力。
编辑:我不想支付任何费用或运行 Windows 来执行此操作。如果可能的话,我希望能够在 Linux 上本地运行一些东西。