# Yagi：IDA 中的 Ghidra 反编译器

> Airbus CERT 开发的插件，把 Ghidra 的原生反编译器嵌入 IDA Pro 和 IDA Free：在函数上按 F3 即可在 IDA 中查看 Ghidra 生成的 C 代码，在其中所做的修改（包括函数原型等全局符号，以及栈变量和寄存器变量的名称与类型）会保存到 IDA 数据库。README 列出已支持 x86、x86-64、ARM、AArch64、PowerPC、MIPS、SPARC、AVR8、6502、Z80 和 eBPF，而 Dalvik、JVM、RISC-V、68000 等其他 Ghidra 处理器尚未启用。

- 类型：工具
- 目标：二进制
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-04
- 原始资源：<https://github.com/airbus-cert/Yagi>
- 一手来源：<https://github.com/airbus-cert/Yagi/blob/6fc4787bf3dcb8480be5bf990662b30bf9130d53/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/yagi-ghidra-decompiler-for-ida/>
- 记录 JSON：<https://awesomerea.org/resources/yagi-ghidra-decompiler-for-ida/record.json>
- 英文版：[English](https://awesomerea.org/resources/yagi-ghidra-decompiler-for-ida/index.md)

## 使用条件与局限

- 自最新版本 v1.5.0（2022-08-04）后即无更新；该版本新增 eBPF 和 IDA 7.7 支持，提供适用于 IDA 7.6、IDA 7.7 和 IDA Freeware 的 Windows MSI 安装包；最后的 Linux 安装包（适用于 IDA 7.5、7.6 和 Freeware 的 .sh 与 .tar.gz）见 v1.4.0（2021-12-20）。没有发布适用于 IDA 8 及以后版本的构建。默认分支为 main；较旧的 master 分支停在 2021 年。
- 从源码构建需要递归克隆，子模块包括 Airbus CERT 维护的 Ghidra 分支（fix-memory-access-violation 分支，固定在 Ghidra 10.1 发布提交）、eBPF-for-Ghidra 和 cylance/eBPF_processor。另外需要 CMake 3.11+、C++ 编译器（Windows 上为 Visual Studio）、用于解析 SLEIGH 语法的 flex 和 bison、用于生成 Windows 安装包的 WiX，以及与使用者 IDA 版本对应的 Hex-Rays IDA SDK；仓库不包含该 SDK。
- 工作流在自托管的 Windows 运行器上，基于本地安装的 IDA 7.6 SDK 构建。其 googletest 单元测试通过模拟的 IDA 加载器、符号和类型接口，反编译直接写在测试源码中的机器码字节数组，覆盖 x86（16、32、64 位）、ARM、MIPS、PowerPC、SPARC、6502 和 Z80。README 的待办事项包括枚举类型、AArch64 函数结尾规则以及修改常量类型。
- Apache-2.0 许可；Ghidra 反编译器沿用其自身的 Apache-2.0 条款，IDA 及其 SDK 是 Hex-Rays 的产品，各有许可条款。

## 一手来源

1. <https://github.com/airbus-cert/Yagi/blob/6fc4787bf3dcb8480be5bf990662b30bf9130d53/README.md>
2. <https://github.com/airbus-cert/Yagi/blob/6fc4787bf3dcb8480be5bf990662b30bf9130d53/CHANGELOG.md>
3. <https://github.com/airbus-cert/Yagi/blob/6fc4787bf3dcb8480be5bf990662b30bf9130d53/.gitmodules>
4. <https://github.com/airbus-cert/Yagi/blob/6fc4787bf3dcb8480be5bf990662b30bf9130d53/CMakeLists.txt>
5. <https://github.com/airbus-cert/Yagi/tree/6fc4787bf3dcb8480be5bf990662b30bf9130d53/tests>
6. <https://github.com/airbus-cert/Yagi/blob/6fc4787bf3dcb8480be5bf990662b30bf9130d53/.github/workflows/unittests.yml>
7. <https://github.com/airbus-cert/Yagi/blob/6fc4787bf3dcb8480be5bf990662b30bf9130d53/LICENSE>
8. <https://github.com/airbus-cert/Yagi/releases/tag/v1.5.0>
9. <https://github.com/airbus-cert/Yagi/releases/tag/v1.4.0>

## 同分区更多条目：原生二进制

- [frida-scripts（0xdea）Frida 移动应用与 Linux 追踪脚本集](https://awesomerea.org/zh/resources/raptor-frida-scripts/index.md) · 工具
- [System Informer 进程与系统检查工具](https://awesomerea.org/zh/resources/system-informer/index.md) · 工具
- [CyberChef 数据解码与分析工具](https://awesomerea.org/zh/resources/cyberchef/index.md) · 工具
- [YARA 文件模式匹配与分类工具](https://awesomerea.org/zh/resources/yara/index.md) · 工具
- [Cheat Engine 游戏与应用内存分析调试工具](https://awesomerea.org/zh/resources/cheat-engine/index.md) · 工具
- [Noriben 基于 Procmon 的恶意软件行为分析脚本](https://awesomerea.org/zh/resources/noriben/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
