Ghidra 是美国国家安全局(NSA)开源的软件逆向工程框架,免费、可商用,GitHub 上有 7.41 万 star。它做的事情是把编译后的程序“拆开看”:拿到一个只有机器码的可执行文件,Ghidra 能把它还原成汇编指令、甚至接近原始 C 语言的伪代码,让使用者读懂程序内部到底在干什么。它适合安全研究员、恶意软件分析师、漏洞挖掘者和 CTF 爱好者,也适合任何想知道“一个程序究竟是怎么工作的”的开发者。
逆向工程是干什么的
程序写完后要编译成机器码——这是 CPU 直接执行的 0 和 1 指令,人类无法直接阅读。逆向工程(Reverse Engineering)就是把机器码还原成人能读的形式,常见用途有三类:分析恶意软件(病毒、勒索软件、木马)的行为;挖掘和验证软件漏洞;研究闭源程序的内部功能与算法。
在这一领域,商业软件 IDA Pro 长期是行业标准,但价格昂贵。Ghidra 由 NSA 于 2019 年开源,功能对标 IDA Pro,且完全免费,因此迅速成为安全研究社区的主流选择。
Ghidra 的核心能力
反汇编:把机器码转换成汇编语言(贴近 CPU 指令的低级文本),逐条看清程序执行了什么。
反编译:把机器码还原成接近高级语言的伪代码,比汇编好读得多,是 Ghidra 最受好评的能力。
图形化:自动绘制函数调用关系图与控制流图,复杂的调用链可以直观浏览。
脚本化:支持 Java 和 Python 编写脚本,可以批量处理文件、自动提取关键信息,适合大规模分析;PyGhidra 让 Python 用户可以直接调用 Ghidra 的 API。
Ghidra 支持 Windows、macOS、Linux 三大平台,覆盖 x86、ARM、MIPS 等主流处理器架构,也支持 ELF、PE、Mach-O 等多种可执行文件格式(分别是 Linux、Windows、macOS 下程序的不同打包格式),并用 Java 写的本体保证了跨平台一致性。
版本与生态
Ghidra 12.1.3 于 2026 年 8 月 18 日发布,是目前的最新版本。仓库累计 1.8 万多次提交,400 多名贡献者,8100 个 fork,是开源安全工具里活跃度最高的一档。扩展方式齐全:Eclipse GhidraDev 插件、VS Code 支持、PyGhidra 脚本库,可以按需开发自己的分析插件。
版本要求分两种情况:运行现成 release 需要 JDK 21,从源码构建则需要 JDK 25 和 Gradle 9.1.0 以上。多数用户下载现成版本、装 JDK 21 即可,不必追新。
上手三步
安装 Ghidra 不需要编译源码,三步即可:
第一,安装 JDK 21(Java 运行环境,Ghidra 的图形界面和反编译引擎都跑在 Java 上)。
第二,从 GitHub Releases 页下载 12.1.3 的压缩包并解压。
第三,运行解压目录里的 ghidraRun 脚本(Windows 是 ghidraRun.bat),打开图形界面后拖入一个可执行文件就能开始分析。
结论
Ghidra 是少数由国家机构开源、完全免费、能力对标商业产品 IDA Pro 的逆向工程框架。想进入二进制安全领域、分析恶意软件,或者单纯想搞懂一个程序内部原理,它是一个门槛低、功能完整、可以免费商用的入手选择。