Ghidra 和 Ida 有什么区别?

信息安全 逆向工程
2021-08-30 12:13:28

Ghidra和Ida之间有比较吗?是否有 Ghidra 而 Ida 没有的任何特定特性和功能?有没有详细解释 Ghidra 的好资料(最好是书)?

2个回答

这在很大程度上是主观的,但是:

  • Ghidra在 GitHub 上是免费和开源的,包括反编译器。IDA 非常昂贵,尤其是当您开始添加反编译器许可证时。
  • IDA 支持 Ghidra 不支持的一些架构,反之亦然。
  • IDA 有调试器,而 Ghidra 没有。 截至 2021 年,Ghidra 的稳定分支现在通过 gdb 或 WinDBG 合并了一个调试器。
  • Ghidra 能够一次将多个二进制文件加载到一个项目中,而 IDA 对此的支持是有限的,而且大多是丑陋的 hack。这意味着您可以更轻松地跟踪应用程序及其库之间的代码。
  • Ghidra 的反汇编器内置了数据流分析功能,当您单击寄存器或变量时,会向您显示数据的来源。IDA 有“哑”文本突出显示以显示该寄存器的其他用途。这些功能是相同概念的略有不同的实现,并且都有其用途。
  • Ghidra 有设计内置的协作反汇编/反编译器项目,而 IDA 需要插件来进行协作,并且 IDA 数据库文件不是为了共享而设计的。
  • Ghidra 有一个撤消按钮!它有效!(IDA 没有,而且非常烦人)
  • IDA 更加成熟,并且多年来添加了许多 Ghidra 无法(还)反映的小功能。
  • 由于 IDA 是一个更加成熟和无处不在的产品,因此围绕它构建了很多开源工具。
  • Ghidra似乎对性能不错的超大 (1GB+) 固件映像有更好的支持。它在分析声明大内存区域的固件映像方面也没有问题。IDA 历来在这方面遇到过问题,这可能非常令人沮丧。
  • 有趣的是,由于 x86 指令解码器的一些错误,Ghidra 对反汇编 Windows 操作系统二进制文件(例如 kernelbase.dll)的支持目前已被破坏。GitHub上有关于这个的问题。

这些观点在撰写本文时(2019 年 3 月)是正确的,但可能会随着时间而改变。

编辑 2020-04-07:Ghidra Book计划于 2020 年 7 月发布。目前只有前 8 章以早期访问 PDF 的形式提供。

这个问题更适合https://reverseengineering.stackexchange.com/questions/

Ghidra和Ida之间有比较吗?

就在这里。其中一个由 Jeremy Blackthorne 和 Alexei Bulazel 在 2019 年的 Infiltrate 安全会议上制作。

是否有 Ghidra 而 Ida 没有的任何特定特性和功能?

以下是演示文稿中比较 Ghidra、IDA 和 Binary Ninja 的幻灯片:

  • 3路比较

    IDA vs Binary Ninja vs Ghidra

  • 反编译器:IDA Hex-Rays vs Ghidra

    IDA Hex-Rays vs Ghidra

  • 中级语言:二进制忍者 vs Ghidra

    ILs: Binary Ninja vs Ghidra

    有没有详细解释 Ghidra 的好资料(最好是书)?

还没有书。

几个重要的点: