NationalSecurityAgency/ghidra
GitHub: NationalSecurityAgency/ghidra
Ghidra 是一个由 NSA 开源的软件逆向工程框架,提供反汇编、反编译和脚本扩展能力,适用于多平台二进制分析。
Stars: 69687 | Forks: 7648

# Ghidra 软件逆向工程框架
Ghidra 是一个软件逆向工程(SRE)框架,由美国国家安全局(NSA)研究局创建和维护。该框架包含一套功能齐全、高端的软件分析工具,使用户能够分析包括 Windows、macOS 和 Linux 在内的多种平台上的编译代码。功能包括反汇编、汇编、反编译、图形化以及脚本编写等数百种其他特性。Ghidra 支持多种处理器指令集和可执行格式,并可在用户交互和自动模式下运行。用户还可以使用 Java 或 Python 开发自己的 Ghidra 扩展组件和/或脚本。
为支持美国国家安全局的网络安全使命,Ghidra 旨在解决复杂 SRE 工作中的扩展和团队协作问题,并提供一个可定制和可扩展的 SRE 研究平台。美国国家安全局已将 Ghidra 的 SRE 能力应用于各种问题,包括分析恶意代码,并为更深入了解网络和系统潜在漏洞的 SRE 分析师提供深度洞察。
如果您是有关趣参与此类项目的美国公民,为美国国家安全局开发 Ghidra 和其他网络安全工具以帮助保护我们的国家及其盟友,请考虑申请[我们的职业机会][career]。
## 安全警告
**警告:** 某些版本的 Ghidra 存在已知的安全漏洞。在继续之前,请阅读 Ghidra 的[安全公告][security],以更好地了解可能对您的影响。
## 安装说明
要安装官方预构建的多平台 Ghidra 版本:
* 安装 [JDK 21 64位][jdk]
* 下载 Ghidra [发布文件][releases]
- **注意:** 官方多平台发布文件名为 `ghidra_
__.zip`,可在"Assets"下拉菜单中找到。
下载名为"Source Code"的文件不适合此步骤。
* 解压 Ghidra 发布文件
- **注意:** 不要解压到现有安装目录之上
* 启动 Ghidra:`./ghidraRun`(Windows 上为 `ghidraRun.bat`)
- 或启动 [PyGhidra][pyghidra]:`./support/pyghidraRun`(Windows 上为 `support\pyghidraRun.bat`)
有关安装和运行 Ghidra 版本的更多信息和故障排除提示,请参阅位于 Ghidra 安装目录根部的[入门指南][gettingstarted]文档。
## 构建
[][build-ghidra-action]
要从此源代码仓库为您的平台创建最新的开发构建:
##### 安装构建工具:
* [JDK 21 64位][jdk]
* [Gradle 8.5+][gradle](如果网络连接可用,可使用提供的 Gradle 包装器)
* [Python3][python3](版本 3.9 到 3.14)及捆绑的 pip
* GCC 或 Clang,以及 make(仅限 Linux/macOS)
* [Microsoft Visual Studio][vs] 2017+ 或 [Microsoft C++ Build Tools][vcbuildtools],并安装以下组件(仅限 Windows):
- MSVC
- Windows SDK
- C++ ATL
##### 下载并解压源代码:
[从 GitHub 下载][master]
```
unzip ghidra-master
cd ghidra-master
```
**注意:** 除了下载压缩的源代码,您也可以克隆 GitHub 仓库:`git clone https://github.com/NationalSecurityAgency/ghidra.git`
##### 将额外的构建依赖项下载到源代码仓库中:
**注意:** 如果网络连接可用且您未安装 Gradle,则可在以下指令中使用 `./gradlew`(或 `gradlew.bat`)命令代替 `gradle` 命令。
```
gradle -I gradle/support/fetchDependencies.gradle
```
##### 创建开发构建:
```
gradle buildGhidra
```
压缩的开发构建将位于 `build/dist/`。
有关构建 Ghidra 的更多详细信息,请阅读[开发者指南][devguide]。
如果构建时遇到问题,请查看[已知问题][known-issues]部分以寻找可能的解决方案。
## 开发
### 用户脚本与扩展
Ghidra 安装支持用户通过 Eclipse 的 *GhidraDev* 插件编写自定义脚本和扩展。该插件及其相应说明可在 Ghidra 发布版的 `Extensions/Eclipse/GhidraDev/` 目录下或通过[此链接][ghidradev]找到。或者,可以通过单击脚本管理器中的 Visual Studio Code 图标来使用 Visual Studio Code 编辑脚本。
可以从 Ghidra 代码浏览器窗口通过 _工具 -> 创建 VSCode 模块项目_ 来创建功能完整的 Visual Studio Code 项目。
**注意:** Eclipse 的 *GhidraDev* 插件和 Visual Studio Code 集成仅支持针对完全构建的 Ghidra 安装进行开发,这些安装可从[发布页面][releases]下载。
### 高级开发
要开发 Ghidra 工具本身,强烈建议使用 Eclipse,Ghidra 的开发过程已为其高度定制。
##### 安装构建和开发工具:
* 按照上面的[构建说明](#build)操作,确保构建无误完成
* 安装[面向 Java 开发者的 Eclipse IDE][eclipse]
##### 准备开发环境:
```
gradle prepdev eclipse buildNatives
```
##### 将 Ghidra 项目导入 Eclipse:
* *文件* -> *导入...*
* *常规* | *将现有项目导入工作区*
* 选择根目录为您下载或克隆的 ghidra 源代码仓库
* 勾选 *搜索嵌套项目*
* 点击 *完成*
当 Eclipse 完成项目构建后,可以使用提供的 **Ghidra** Eclipse *运行配置* 来启动和调试 Ghidra。
有关开发 Ghidra 的更多详细信息,请阅读[开发者指南][devguide]。
## 贡献
如果您希望向 Ghidra 贡献错误修复、改进和新功能,请查看我们的[贡献者指南][contrib],了解如何参与此开源项目。
标签:Amass, Findomain, Hakrawler, HTTPX, JS文件枚举, Nuclei漏洞扫描, Python, SEO检索, URL提取, Wayback Machine, 二进制分析, 云安全运维, 云资产清单, 反汇编, 反编译, 可执行格式, 后台面板检测, 国家安全局, 图形分析, 域名枚举, 处理器指令集, 安全研究平台, 恶意代码分析, 扩展组件, 无后门, 漏洞分析, 网络安全, 脚本化, 自动化分析, 跨站脚本, 路径探测, 软件逆向工程框架, 逆向工具, 逆向工程, 配置文件, 隐私保护