有谁知道如何在 IDA Pro 中获取 x86-64 的伪代码?我已经尝试过Hex-Rays插件获取伪代码,但是当我尝试时,弹出以下错误:“仅支持32位代码”。
如何在 IDA Pro 中获取 x86-64 伪代码?
这里的另外两个答案已经过时。
来自 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 页面):
(来源:hex-rays.com)
其他解决方案
但是,还有其他解决方案提供用于反编译的 IDA 插件。虽然不是您正在寻找的,但它们提供了另一种可能的方式来实现您的预期目标:
- Snowman,带有 IDA 插件的成熟反编译器
- AVG 的Retargetable Decompiler 在线反编译器插件(由@ws提及)
- 一个名为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 生成伪代码。