如何使用脚本从 IDA 控制 Hex-Rays 反编译器插件?

逆向工程 艾达 idapro插件 蟒蛇
2021-06-12 07:11:43

我想将 IDA 与 Hex-Rays 反编译器插件一起用作自动静态分析的一部分,可能在大量文件上使用,而无需打开每个文件并告诉它单独生成 C 文件。

理想情况下,我想从命令行运行 IDA,并将基于初始自动分析的反编译作为输出。通过这种方式,我可以将它作为Mastiff或 grep 的一部分运行,用于一组二进制文件中的某些函数。通过阅读Hex 博客中的批量分析,我需要一个与反编译器插件交互的 IDA 脚本,但我不知道如何实际执行此操作。

所以这给我留下了 2 个子问题:

  • 如何告诉 Hex-Rays 反编译器从脚本“生成 C 文件”(反编译所有函数)?
  • 该脚本是否需要是 IDC,或者 IDAPython 是否可能?
1个回答

[早在 2013 年] 反编译器没有脚本 API。所以你有这些选择:

  • 使用调用反编译器 API 的本机插件向 IDC 添加必要的功能
  • 使用ctypes或类似方法直接从 Python 调用 C++ API。几年前,我在 Hex-Rays 论坛上发布了一个小的 PoC 脚本。
  • 如果您只想获得反编译的文本,可以使用命令行选项

IDA 6.6(2014 年 6 月发布)为反编译器添加了官方 Python 绑定,因此现在可以从 Python 编写脚本。有关示例代码,请参阅IDAPython 存储库中的vds*.py脚本