在 IR 上运行优化传递

逆向工程 程序分析
2021-07-07 17:14:50

环顾四周用于逆向工程的 IR,我发现了很多有趣的。假设我有一个尝试逆向工程的函数,我正在考虑以下方法。

将程序集提升到 IR,对其运行优化传递并将其转换回程序集。实施这样的事情会有多困难?有没有推荐的IR。我猜测能够将汇编代码提升到 LLVM IR 将非常有用,并且可以在其上运行 LLVM 优化传递。

你对此有什么建议吗?

2个回答

mcsema ('MC-Semantics') 将 x86 转换为 LLVM IR,以便可以应用所有 LLVM IR 工具进行分析。它出现在相关主题重新编译/优化冗余代码以简化分析中,该主题还包含指向进一步工作/论文的指针。

您可以尝试使用Python 编写Miasm 框架框架具有您需要的所有功能。除此之外,您还有metasm,它是用纯 ruby​​ 编写的,没有依赖项。这些框架实现了自己的 IR,这与 LLVM 不同。

实用逆向工程一书有关于框架使用的教程。