重新编译/优化冗余代码,使分析更容易

逆向工程 拆卸 x86 去混淆 虚拟机
2021-07-09 11:26:59

我正在分析一个用 Borland Delphi 创建的应用程序,但目标代码的低质量使分析变得困难和乏味。代码非常复杂,并且充满了多余的指令,以至于很难弄清楚给定的一段代码试图完成什么。

在相关主题确定解密方案中,建议使用良好的优化编译器重新编译反编译器输出,以消除冗余并获得更易于分析的目标代码。

我现在想知道什么是最好的方法来做到这一点。

有哪些工具可以根据目标代码反汇编器输出 (IDA)执行此操作

1个回答

我建议看看mcsema项目。它将 x86 转换为 LLVM 中间表示,并且能够将代码编译回来并进行更改。一旦代码被转换为LLVM 的中间表示,它就可以通过现有的 LLVM 优化进行优化。