NationalSecurityAgency/ghidra

GitHub: NationalSecurityAgency/ghidra

NSA 开源的软件逆向工程框架,提供反汇编、反编译等全套二进制分析能力。

Stars: 65204 | Forks: 7192

# Ghidra 软件逆向工程框架 Ghidra 是由 [美国国家安全局 (National Security Agency)][nsa] 研究理事会创建并维护的软件逆向工程 (SRE) 框架。该框架包含一套功能齐全的高端软件分析工具,使用户能够分析包括 Windows、macOS 和 Linux 在内的多种平台上的编译代码。其功能包括反汇编、汇编、反编译、图形化和脚本编写,以及数百种其他功能。Ghidra 支持多种处理器指令集和可执行格式,并且可以在用户交互和自动化两种模式下运行。用户还可以使用 Java 或 Python 开发自己的 Ghidra 扩展组件和/或脚本。 为了支持 NSA 的网络安全任务,构建 Ghidra 旨在解决复杂 SRE 工作中的规模扩展和团队协作问题,并提供一个可定制且可扩展的 SRE 研究平台。NSA 已将 Ghidra 的 SRE 功能应用于各种问题,包括分析恶意代码,并为寻求深入了解网络和系统中潜在漏洞的 SRE 分析师生成深度见解。 如果您是美国公民,并且对这类项目感兴趣,希望为 NSA 开发 Ghidra 和其他网络安全工具以保护我们的国家及其盟友,请考虑 [申请加入我们][career]。 ## 安全警告 **警告:** 特定版本的 Ghidra 中存在已知的安全漏洞。在继续操作之前,请阅读 Ghidra 的 [安全公告][security],以更好地了解您可能受到的影响。 ## 安装 要安装官方预构建的跨平台 Ghidra 版本: 有关安装和运行 Ghidra 版本的更多信息和故障排除提示,请参阅 [入门指南][gettingstarted] 文档,该文档可在 Ghidra 安装目录的根目录下找到。 ## 构建 要从该源代码仓库为您的平台创建最新的开发版本: ##### 安装构建工具: ##### 下载并解压源代码: [从 GitHub 下载][master] ``` unzip ghidra-master cd ghidra-master ``` **注意:** 如果不想下载压缩的源代码包,您也可以选择克隆 GitHub 仓库:`git clone https://github.com/NationalSecurityAgency/ghidra.git` ##### 将额外的构建依赖项下载到源代码仓库中: **注意:** 如果有可用的互联网连接且您未安装 Gradle,以下 `gradle` 命令可以替换为 `./gradlew(.bat)`。 ``` 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 CodeBrowser 窗口的 _工具 -> 创建 VSCode 模块项目 (Tools -> Create VSCode Module project)_ 创建功能齐全的 Visual Studio Code 项目。 **注意:** Eclipse 的 *GhidraDev* 插件和 Visual Studio Code 集成仅支持针对完全构建的 Ghidra 安装进行开发,这些安装可以从 [Releases][releases] 页面下载。 ### 高级开发 要开发 Ghidra 工具本身,强烈建议使用 Eclipse,因为 Ghidra 的开发流程已针对其进行了高度定制。 ##### 安装构建和开发工具: ##### 准备开发环境: ``` gradle prepdev eclipse buildNatives ``` ##### 将 Ghidra 项目导入 Eclipse: 当 Eclipse 完成项目构建后,可以使用提供的 **Ghidra** Eclipse *运行配置* 来启动和调试 Ghidra。 有关开发 Ghidra 的更多详细信息,请阅读 [开发者指南][devguide]。 ## 贡献 如果您希望将错误修复、改进和新功能贡献回 Ghidra,请查看我们的 [贡献者指南][contrib],了解如何参与这个开源项目。
标签:Amass, Assetfinder, Chaos, CTF工具, Docker‑Compose, Findomain, GauPlus, GUI应用, Hakrawler, HTTPX, Java, JS文件枚举, Linux, macOS, NSA, Nuclei漏洞扫描, pip安装, Process Hacker, Python, Rust语言, SEO检索, SRE框架, Subfinder, SubJs, URL提取, VPS部署, Wayback Machine, Web爬虫, Web界面, Windows, 二进制分析, 云安全运维, 云资产清单, 代码审计, 函数图谱, 历史网站抓取, 反汇编, 反编译, 可扩展, 后台面板检测, 国家安全局, 域名枚举, 域名枚举, 域名枚举, 域名枚举, 威胁分析, 安全工具, 带宽管理, 开源软件, 恶意代码分析, 情报收集, 无后门, 漏洞搜索, 漏洞研究, 用户界面自定义, 网络取, 网络安全, 脚本编写, 自动化侦查工具, 被动信息收集, 调试器, 资源监视器, 跨平台, 软件分析, 逆向工具, 逆向工程, 配置文件, 隐私保护