如何在 IDA Pro 中获取 x86-64 伪代码?

逆向工程 艾达 x86 反编译 反汇编者 x64
2021-06-13 06:24:01

有谁知道如何在 IDA Pro 中获取 x86-64 的伪代码?我已经尝试过Hex-Rays插件获取伪代码,但是当我尝试时,弹出以下错误:“仅支持32位代码”。

3个回答

这里的另外两个答案已经过时。

来自 hex-rays 网站,在关于 hex-rays 反编译器页面中

目前,反编译器支持 x86、x64、ARM32、ARM64 和 PowerPC 处理器的编译器生成代码。我们计划将其移植到其他平台并添加一个编程 API。这将允许我们的客户实施他们自己的分析方法。漏洞搜索、软件验证、覆盖率分析是立即想到的方向。

2014/06/04,随着IDA 6.6 hex-rays的发布,他们的64位x86反编译器正式发布,此后一直在稳步改进。官方版本可以在 IDA 6.6页面上看到,作为第一个新功能以及他们的更新日志

它是一个单独的产品,与他们的 x86 32 位反编译器分开出售,目前的报价与其他反编译器相同(请参阅价格报价页面以获取命名许可)。

在第一次发布两年多后,反编译器功能齐全,被认为是高档的。

两张使用 IDA 的 64 位 x86 反汇编和反编译的图片(来自 hex-ray 的 IDA 6.6 页面):

IDA 6.6 反汇编示例
(来源:hex-rays.com

IDA 6.6 示例反编译

其他解决方案

但是,还有其他解决方案提供用于反编译的 IDA 插件。虽然不是您正在寻找的,但它们提供了另一种可能的方式来实现您的预​​期目标:

  1. Snowman,带有 IDA 插件的成熟反编译器
  2. AVG 的Retargetable Decompiler 在线反编译器插件由@ws提及
  3. 一个名为ida-decompiler的仅用于 Python 的 IDA 反编译器插件由 @0xea提及

据我所知,IDA Hex-ray 插件只支持 x86 和 ARM 反编译(如果你有 ARM 的许可证)。它不适用于 x86_64。

但是,如果您需要可以在 x86_64 上运行的东西,请查看ida-decompiler

一个试图反编译函数的 IDA 插件。用 Python 编写。要在 IDA 中试用,请将光标放在一个函数上,然后执行插件。反编译的函数将出现在输出窗口中。

显然,它不如 Hex-Rays 先进,但它是朝着好的、开放的反编译器迈出的一大步。

如果您绝对需要伪代码并且对 IDA Pro 不走运,您可能想尝试一下hopper 的演示版:它可以为 x86、x86-64 和 ARM 生成伪代码。