IDA Pro 9.4 for macOS, Linux, Windows

A powerful disassembler, decompiler and a versatile debugger. In one tool.

Posted by sysin on 2026-06-11
Estimated Reading Time 12 Minutes
Words 3.4k In Total
更新日期:Thu Jun 11 2026 09:19:19 GMT+0800,阅读量:

请访问原文链接:IDA Pro 9.3sp2 (macOS, Linux, Windows) - 强大的反汇编程序、反编译器和多功能调试器 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


IDA Pro

一个强大的反汇编程序、反编译器和多功能调试器。集成在一个工具中。

Screenshot of a code analysis interface

强大的反汇编程序、反编译器和多功能调试器

原始的反汇编器

Reverse anything

拆解几乎所有东西

IDA 反汇编器因其对各种处理器和文件格式的无与伦比的支持而脱颖而出。这种卓越的多功能性使其成为首选。无论您是在分析嵌入式系统、移动应用程序还是复杂的多平台软件,IDA Pro 的全面兼容性都能确保您拥有完成任何任务的最佳工具。

支持的处理器和文件格式列表:https://docs.hex-rays.com/user-guide/disassembler/supported-processors

轻松、高质量的反汇编输出

自动获得高质量的输出,无需使用 IDA 的反汇编操作功能,例如高级结构定义、命名、键入、注释等…

​请参阅拆解图库:https://docs.hex-rays.com/user-guide/disassembler/disassembly-gallery

Disassembly-modal

业界最值得信赖的反编译器

pseudocode

高质量、可读且可维护的伪代码

IDA 反编译器专注于提供可读、可维护且在语义上与原始源代码相似的代码,这得益于高级抽象、语义保留、可读性、类型推断、结构恢复等。

​探索 IDA 反编译器:https://hex-rays.com/decompiler

有关众所周知的函数的元数据。触手可及

由 Hex-Rays 维护的 Public Lumina 服务器跟踪众所周知的函数的元数据,例如名称或操作数类型。您的 IDA 实例仅与 Public Lumina 服务器交换哈希值和元数据,避免通过网络传输敏感字节模式。

如果您希望控制元数据,请启用 Private Lumina 附加组件以使用您自己托管的 Lumina 服务器。

Screenshot of a code analysis interface

Screenshot of a code analysis interface

将代码模式与已知库进行匹配。增强您的分析能力

使用 FLIRT(快速库识别和识别技术)来帮助逆向工程师识别二进制文件中使用的库。所有这些都是为了提高生成的反汇编代码的可读性。

​查看详情:https://docs.hex-rays.com/user-guide/signatures/flirt/ida-f.l.i.r.t.-technology-in-depth

反混淆

使用 gooMBA 理解混淆的二进制文件

IDA Pro 极大地简化了逆向工程人员处理模糊二进制文件的工作流程,尤其是涉及混合布尔算术 (MBA) 表达式的二进制文件。gooMBA 插件随 IDA Pro 一起提供,并将代数和程序综合技术与智能启发法相结合,以实现一流的反混淆性能。它直接集成到 Hex-Rays 反编译器中,并为 SMT 求解器提供了一个桥梁,可以证明简化的正确性。

gooMBA

集成调试器

Debugger

利用 IDA 调试器进行动态分析

IDA 不仅是一个反汇编器,也是一个多功能的调试器。除了协助其他程序内的错误检测和纠正之外,它还支持多个调试目标并可以处理远程应用程序。

使用 API、SDK 和库扩展到 IDA 之外

screenshot of the plugin details page

发现 200 多个社区插件。正在等你的

如果您突破了 IDA 的极限,您还可以超越。开发您自己的 IDA 插件或使用开放存储库中社区制作的插件。珍惜用户社区的创新精神,每年举办一次插件大赛。

​访问社区插件存储库:https://plugins.hex-rays.com/

自动化您的分析。添加您自己的功能。创建您自己的应用程序

IDA Pro 附带一套工具来丰富您的开发人员体验

IDA C++ SDK使您能够开发自己的 GUI 功能等等。

IDAPython API 可帮助您创建自动化脚本、插件等。

IDA T使得从命令行运行 IDA 函数成为可能。

idalib允许您在无头模式下将 IDA Pro 作为库运行。

如果您选择 IDA Pro OEM 许可证,您还可以使用 idalib 创建衍生作品,例如将 idalib 嵌入到您的商业现成软件中或创建您的服务器应用程序。

​检查开发人员文档:https://docs.hex-rays.io/developer-guide

sdk

IDA 9.4:更广泛的处理器与平台支持

IDA 9.4 带来了全新的 Qualcomm Hexagon DSP 处理器模块、覆盖 C-SKY V1 的 MCore 家族支持,以及对 ARM、TriCore 和 RISC-V 的更深入支持。

Qualcomm Hexagon(QDSP6)

新增了 Qualcomm Hexagon 处理器模块。如果你正在逆向 Snapdragon 固件(音频与计算 DSP、基带 Modem 或较新的 NPU 镜像),IDA 现在能够对其进行反汇编与分析,并提供对 ELF 及 Qualcomm MBN 容器格式的加载支持。

qualcomm screenshot 1 + border v2

关于 Hexagon,需要特别说明几点:

  • 指令以并行包(Packet)的形式执行,每个包最多包含四条指令。IDA 会使用大括号显示每个指令包,并解析双工指令(一个机器字中包含两条子指令)以及 .new 操作数。
  • 支持零开销硬件循环(Zero-overhead Hardware Loops),以 :endloop0 / :endloop1 标记。
  • 支持感知指令包的控制流分析。一个指令包中可以包含多个分支指令。

输出格式可自定义。通过处理器选项,你可以将大括号单独显示在新行、显示槽位标签(Slot Labels),或为 .new 生产者添加注释。

hexagon processor options + border

MCore 与 C-SKY V1

在 9.4 中,借此机会加入了对 C-SKY V1 的支持。它源自 Motorola/Freescale M-CORE,并与其高度兼容,因此两者共用同一个解码器。

c-sky + border v2

该模块支持:

  • 栈变量跟踪(Stack-variable Tracking),能够恢复函数栈帧并为局部变量命名。
  • = symbol 形式显示字面量池(Literal Pool)加载,同时解析池项及其交叉引用(例如 lrw r7, =aBootseqNormal)。
  • 基于重定位信息生成交叉引用,并改进函数识别能力。

C-SKY V1 支持覆盖 CK510、CK610、CK610E 和 CK620 内核,包括协处理器指令以及 DSP/乘法指令,同时支持大小端模式。

ELF 加载器能够自动识别 C-SKY 二进制文件,并处理 MCore/C-SKY 重定位。

csky options + border

ARM:完整支持 SVE 与 SME

在 IDA 9.3 中,仅支持 Apple 内核中常见的部分 SVE/SME 指令集。而在 9.4 中,实现了完整支持:

  • 完整的 AArch64 SVE
  • SVE2
  • SME
  • SME2

包括可扩展向量寄存器(Z)、谓词寄存器(P)、SME2 多向量及索引操作,以及 MUL VL 寻址方式。

arm-sve-sme + border

ARM 架构检测会根据二进制文件声明的架构及属性自动选择合适的 SVE/SME 配置:

  • ARMv8.2 默认启用 SVE
  • ARMv9 默认启用 SVE2
  • 通用 AArch64 默认启用 SVE2 + SME2

如果自动检测结果不正确,可以在处理器选项中手动覆盖,或者完全禁用这些扩展。

arm arch options + border

同时还引入了两项 ABI 改进:

  • 现在可从 ELF 文件自动推断 VFP(HardFloat)ABI。
  • 对于 ARM32 Windows 二进制文件,IDA 默认采用 AAPCS-VFP ABI。

此外还有一些较小的反汇编修复:

  • STM SP 识别为多槽位栈参数存储操作。
  • 修复 AArch64 的 UDF 指令解码问题。
  • 改进 64 位 TBB 风格跳转表恢复能力。

TriCore:调用约定与分析能力增强

TriCore 是 Infineon AURIX 系列的核心架构,也是汽车 ECU 中占主导地位的微控制器平台。

在 9.4 中,为 TriCore 模块引入了真正的类型系统和显式调用约定模型。IDA 现在能够理解参数和返回值如何分布于 TriCore 的寄存器组中,因此在分析 AURIX 固件时,函数原型、参数类型和交叉引用都会更加准确。

这也是未来反编译器支持的重要基础,同时已经能显著提升当前的反汇编体验。

调用约定模型

TriCore 通常将前几个整数或指针参数放置在数据寄存器和地址寄存器组(D4–D7、A4–A7)中,其余参数则通过栈传递。

IDA 现已直接建模这一行为:

  • 自动计算参数位置
  • 自动确定返回值位置
  • 自动处理可变参数布局(VarArgs)
  • 根据 ABI 要求在 D/A 寄存器组之间分配参数

tricore arglocs + border

处理器选项中可选择两种常见 ABI:

  • GCC/HighTec EABI
  • TASKING ABI

两者在部分参数和返回值分配方式上存在差异。

IDA 会在分析过程中自动尝试识别 ABI,但用户也可以通过:

1
Options → Compiler... → ABI name

手动切换。

tricore abi options + border

更精准的反汇编分析

除了 ABI 支持外,还改进了多个分析流程:

  • 更强的跳转表识别能力,包括 16 位相对偏移跳转表。
  • 重构重定位处理逻辑,支持更多重定位类型,并生成更准确的交叉引用。

AURIX TC4x 设备支持

新增内置内存映射和外设寄存器定义,支持最新 AURIX TC4x 设备:

  • TC45x
  • TC48x
  • TC49xN
  • TC4Dx

选择对应设备后,IDA 会自动构建片上内存映射并为特殊功能寄存器命名,使固件中的外设访问显示为:

1
CAN_17_MCMCAN_F0SA

而不是单纯的原始地址。

tricore device + border v2

RISC-V:厂商扩展与嵌入式核心支持

RISC-V 正持续扩展到安全芯片和微控制器领域,而厂商自定义扩展生态也在快速增长。

在 9.4 中,进一步扩大了对这些场景的支持。

Soteria

Soteria(Xsoteria)是一种常见于安全芯片固件中的自定义 RISC-V 扩展。

riscv soteria + border

这些操作码与其他厂商扩展存在重叠(例如 Andes 的 XAndesPerf 扩展使用相同编码)。

因此,仅凭机器码,IDA 并不总能判断具体属于哪个扩展。

为了避免误判,IDA 会:

  • 按当前配置的扩展进行解码;
  • 同时将另一种可能的解释显示为注释(alt Xsoteria / alt XAndesPerf)。

这样分析人员若基于错误假设工作,可以立即发现问题。

较复杂的 Soteria 指令会提升(Lift)到微代码层,并以内建函数(Intrinsic)形式出现在伪代码中;而常量参数形式则会被本地折叠优化。

伪代码

1
2
3
4
5
6
7
8
9
unsigned __int32 __fastcall test_grevi_bswap(unsigned __int32 a1)
{
return _soteria_grevi(a1, 0x18u);
}

int __fastcall test_clear_highbit(unsigned __int32 a1)
{
return a1 & ~(1 << _soteria_fls(a1));
}

Hazard3 / RP2350

Hazard3 是 RP2350(Raspberry Pi Pico 2)所采用的 RISC-V 核心。

IDA 现已支持其自定义指令,包括:

  • 多 Hart(多核)同步原语
  • RP2350 专有扩展

RP2350 固件能够被顺利反编译,甚至 SDK 中的 GPIO 辅助函数也能正确恢复。

riscv hazard + border

压缩指令支持

压缩 ISA 支持进一步扩展,新增:

  • Zcmp
  • Zcmt
  • Zclsd
  • Zcb
  • Zihintntl

以及 Semihosting 识别能力。

压缩指令现在会明确显示 c. 前缀,例如:

1
2
3
c.addi
c.sw
c.j

从而能够一眼识别出哪些是 16 位压缩指令。

完整 HINT 指令解码

IDA 现已支持完整的 RISC-V HINT 指令空间,包括:

  • 标准 Hint
  • Pause
  • NTL
  • Semihosting 标记
  • 厂商保留编码

可以将 HINT 理解为一种“无操作但有提示意义”的指令,用于向 CPU 传递缓存、暂停等信息,而不会改变程序状态。

IDA 会自动为这些指令添加注释。

例如:

反汇编

1
2
3
add     zero, ra, sp    # standard hint
srai zero, zero, 7 # semihosting exit
slti zero, ra, 1 # custom hint

调试器:改进远程与嵌入式调试体验

前面提到的新型芯片最终都需要进行调试,而嵌入式和 DSP 平台通常通过:

  • JTAG
  • gdbserver
  • 远程 GDB Stub

完成调试。

在 9.4 中,重新梳理了 IDA 的 GDB Remote Serial Protocol(RSP)客户端,使其更加符合规范,并提升与第三方及嵌入式调试 Stub 的兼容性,同时增加了多项针对微控制器开发的便利功能。

  • 新增 RISC-V 调试器配置支持。
  • 对于 Flash 区域地址自动使用硬件断点,因为软件断点无法写入 Flash。
  • 当调试 Stub 支持时,自动使用二进制 x/X 内存传输。
  • 支持通过 qXfer:libraries-svr4:read、完整 qXfer:libraries:read XML 格式以及 qXfer:memory-map:read 自动发现库与内存映射。
  • 当进程启动失败时,IDA 会显示真实失败原因。

总结

总体而言,IDA 9.4 进一步扩展了对嵌入式处理器和 DSP 平台的支持范围。

这只是未来更深入分析能力的基础工作。许多改进都来自用户反馈和客户需求,在此感谢大家的建议与支持。

版本历史

Version History:

  • IDA 9.0.240925 September 30, 2024
  • IDA 9.0.20241216 (SP1) December 19, 2024
  • IDA 9.1.250226 Feb 28, 2025
  • IDA 9.2.250908 September 08, 2025
  • IDA 9.3.260213 February 13, 2025
  • IDA 9.3.260327 (SP1) March 27, 2025
  • IDA 9.3.260421 (SP2) April 23, 2025
  • IDA 9.4 当前为 beta,正式版即将发布

IDA Pro 9.4 for macOS arm64 (Apple 芯片)

IDA Pro 9.4 for macOS x64 (Intel 处理器)

IDA Pro 9.4 for Linux arm64

IDA Pro 9.4 for Linux x64

IDA Pro 9.4 for Windows x64

请访问:IDA Pro 9.3sp2 (macOS, Linux, Windows) - 强大的反汇编程序、反编译器和多功能调试器


更多:HTTP 协议与安全


捐助本站 ❤️ Donate

点击访问官方网站


文章用于推荐和分享优秀的软件产品及其相关技术,所有软件默认提供官方原版(免费版或试用版),免费分享。对于部分产品笔者加入了自己的理解和分析,方便学习和研究使用。任何内容若侵犯了您的版权,请联系作者删除。如果您喜欢这篇文章或者觉得它对您有所帮助,或者发现有不当之处,欢迎您发表评论,也欢迎您分享这个网站,或者赞赏一下作者,谢谢!

支付宝赞赏 微信赞赏

赞赏一下