## 项目概述

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](https://adoptium.net/temurin/releases)。
2. 从 [Releases](https://github.com/NationalSecurityAgency/ghidra/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](https://github.com/NationalSecurityAgency/ghidra/security/advisories)，及时升级到修复漏洞的版本。

## 限制、风险与许可证

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

## 官方链接

- [GitHub 仓库](https://github.com/NationalSecurityAgency/ghidra)
- [Releases](https://github.com/NationalSecurityAgency/ghidra/releases)
- [安全公告](https://github.com/NationalSecurityAgency/ghidra/security/advisories)
- [贡献指南](https://github.com/NationalSecurityAgency/ghidra/blob/master/CONTRIBUTING.md)
- [开发者指南](https://github.com/NationalSecurityAgency/ghidra/blob/master/DevGuide.md)

## 信息来源和分析时间

- 信息来源：GitHub 仓库 README、CONTRIBUTING.md、最新发布信息（Ghidra 12.1.3，发布于 2026-08-18）。
- 分析时间：2026-08-18（基于最新发布信息）。