NationalSecurityAgency / ghidra

NationalSecurityAgency/ghidra

open_in_new前往仓库

Ghidra 是美国国家安全局(NSA)开发的软件逆向工程(SRE)框架,提供反汇编、反编译、图形分析、脚本扩展等功能,支持多种处理器指令集和可执行文件格式,可运行于 Windows、macOS 和 Linux。

项目概览

项目概述

Ghidra 是由美国国家安全局(NSA)研究局创建并维护的软件逆向工程(SRE)框架。它提供了一套功能齐全、高端的软件分析工具,使用户能够在 Windows、macOS 和 Linux 等多种平台上分析编译后的代码。Ghidra 支持多种处理器指令集和可执行文件格式,并支持用户交互和自动化两种运行模式。用户还可以使用 Java 或 Python 开发自己的 Ghidra 扩展组件和脚本。

核心功能

  • 反汇编与反编译:将机器码转换为汇编语言和可读的 C 代码。
  • 图形分析:可视化函数调用关系、控制流等。
  • 脚本与扩展:支持 Java 和 Python 编写脚本,以及通过 GhidraDev 插件(Eclipse)或 Visual Studio Code 开发扩展。
  • 多平台支持:支持 Windows、macOS 和 Linux。
  • 多种处理器架构:支持广泛的处理器指令集和可执行文件格式。
  • 自动化模式:支持命令行和脚本化操作,便于集成到自动化流程。

适用与不适用场景

适用场景:

  • 恶意代码分析
  • 漏洞研究与安全审计
  • 软件逆向工程教学与研究
  • 二进制程序的功能理解与调试

不适用场景:

  • 需要实时动态调试的场景(Ghidra 主要侧重静态分析,动态调试功能有限)
  • 对非二进制文件(如纯文本、图片)的分析
  • 需要高度定制化且不熟悉 Java/Python 的用户的快速上手

技术架构与依赖

  • 编程语言:Java(主要),部分原生组件使用 C/C++。
  • 构建工具:Gradle 9.1.0+(或使用提供的 Gradle wrapper)。
  • 运行环境:JDK 25 64-bit。
  • 脚本支持:Python 3.9 至 3.14(通过 PyGhidra)。
  • 操作系统:Windows、macOS、Linux。
  • 开发环境:Eclipse(推荐)或 Visual Studio Code。

安装与快速开始

安装预构建版本

  1. 安装 JDK 25 64-bit。
  2. 从 Releases 下载官方多平台发布文件(ghidra_<version>_<release>_<date>.zip)。
  3. 解压发布文件(注意不要解压到已有安装目录上)。
  4. 启动 Ghidra:运行 ./ghidraRun(Windows 下为 ghidraRun.bat),或启动 PyGhidra:./support/pyghidraRun(Windows 下为 support\pyghidraRun.bat)。

从源码构建

  1. 安装构建工具:JDK 25、Gradle 9.1.0+、Python3(3.9-3.14)、GCC/Clang 和 make(Linux/macOS)、Visual Studio 2017+ 或 C++ Build Tools(Windows)。
  2. 下载或克隆源码:git clone https://github.com/NationalSecurityAgency/ghidra.git。
  3. 下载额外构建依赖:gradle -I gradle/support/fetchDependencies.gradle。
  4. 创建开发构建:gradle buildGhidra,构建产物位于 build/dist/。

典型使用方法

  • 图形界面分析:通过 CodeBrowser 窗口加载二进制文件,进行反汇编、反编译、函数分析等。
  • 脚本自动化:使用 Python(PyGhidra)或 Java 编写脚本,批量处理文件或自动化分析任务。
  • 扩展开发:使用 GhidraDev 插件(Eclipse)或 Visual Studio Code 创建扩展模块。
  • 命令行模式:通过 analyzeHeadless 等工具进行无界面分析。

配置与部署要点

  • 环境变量:确保 JAVA_HOME 指向 JDK 25。
  • 内存设置:对于大型二进制文件,可能需要调整 Ghidra 的 JVM 堆内存大小(可在启动脚本中配置)。
  • 插件安装:将扩展插件放入 Extensions 目录,并在 Ghidra 中启用。
  • 安全更新:关注 Security Advisories,及时升级到修复漏洞的版本。

限制、风险与许可证

  • 已知漏洞:某些版本的 Ghidra 存在已知安全漏洞,使用前请查阅安全公告。
  • 许可证:Apache License 2.0。
  • 贡献政策:贡献者需遵循 inbound=outbound 模型,即贡献的代码将以项目相同的许可证(Apache-2.0)发布。
  • 平台限制:部分功能(如原生组件)可能仅支持特定操作系统。

官方链接

信息来源和分析时间

  • 信息来源:GitHub 仓库 README、CONTRIBUTING.md、最新发布信息(Ghidra 12.1.3,发布于 2026-08-18)。
  • 分析时间:2026-08-18(基于最新发布信息)。