Mindket

Ghidra 逆向工程框架

新上架第 2 版 · 更新于
星标99.6k

概览

NSA 的开源逆向工程框架:把编译好的程序转成汇编和类似 C 的代码,你可以阅读、注释、写脚本处理,既能在窗口里用,也能批量运行,支持 Windows、macOS 和 Linux。

Ghidra 逆向工程框架 是一款 GitHub 上的开源项目,属于开发类,由 Mindket 上架。可免费获取。当前为第 2 版,最近更新于 。按它的 README 从 GitHub 安装。Mindket 的设置说明可在你的 Mindket 账户获取,以 zip 压缩包下载。

速览

用在
  • 窗口模式,用 ghidraRun 启动,适合动手分析
  • 无头模式,用 analyzeHeadless 启动,不开窗口批量处理文件
  • PyGhidra,在窗口里跑 Python 3 脚本,或者把 Ghidra 当作 Python 库来用
  • Ghidra Server,供多人在同一个仓库上协作
先运行
Linux or macOS: ./ghidraRun
Windows: ghidraRun.bat

平台

Windows操作系统
Linux操作系统
macOS操作系统

关于

它是什么

按它的 README 所说,Ghidra 是美国国家安全局(NSA)研究局开发并维护的软件逆向工程框架。它打开一个编译好的程序,把机器码显示成汇编,再转成类似 C 的代码,你可以给它改名、加注释、重新整理。它支持很多处理器指令集和可执行文件格式,既能在窗口里用,也能在命令行里跑,还能用 Java 或 Python 写脚本。它是一个解压就能启动的桌面程序,不是编程智能体的插件。

  1. 新建一个项目,再导入一个程序
  2. 在 CodeBrowser 里打开它,同意自动分析
  3. 对照着看汇编和反编译出的类 C 代码
  4. 把弄懂的东西改名、加注释、改类型
  5. 用脚本重复这一套,或者不开窗口直接跑

适合谁

需要在没有源代码的情况下看懂编译后程序在做什么的人:安全研究员、恶意软件分析师、固件工程师和学生。README 说,NSA 打造 Ghidra 是为了让团队应对大型逆向工程任务,并且已经把它用在分析恶意代码上。

谁在用,怎么用
行业谁在用怎么用例子
安全与应急响应恶意软件分析师导入可疑文件,让自动分析跑完,再对照汇编读反编译器的输出一位分析师给一个陌生样本里的函数逐个改名,直到它的流程读得清楚。
漏洞研究审计编译后代码的研究员用无头模式对大量二进制文件跑同一个脚本一位研究员让 analyzeHeadless 处理一整个文件夹的二进制文件,配一个后置脚本,列出每个文件调用了什么。
嵌入式与固件固件工程师加载 Ghidra 有对应模块的处理器的镜像,其中包括 ARM、MIPS、PowerPC 和 RISC-V一位工程师打开一个路由器镜像,读它那颗 MIPS 芯片上的代码。
多人分析同一目标分析师小组共用一个 Ghidra Server 仓库,每个人把改动提交到同一份副本两位分析师分头处理一个大型二进制文件,把各自的改名提交到同一个仓库。

如果你只想看一眼某个文件的字符串或文件头,可以不用它。半个多 GB 的下载再加一个 JDK,对这种活来说太重了。

用在哪里

Ghidra 能在 Windows、Linux 和 macOS 上运行,几种模式共用同一个安装。

  • 窗口模式,用 ghidraRun 启动,适合动手分析
  • 无头模式,用 analyzeHeadless 启动,不开窗口批量处理文件
  • PyGhidra,在窗口里跑 Python 3 脚本,或者把 Ghidra 当作 Python 库来用
  • Ghidra Server,供多人在同一个仓库上协作

脚本和扩展用 Java 或 Python 编写。README 提到了 Eclipse 的 GhidraDev 插件,还说可以在 CodeBrowser 里通过 Tools → Create VSCode Module project 创建 Visual Studio Code 项目。

Ghidra 并没有宣传 AI 功能。README、Getting Started 和 What’s New 都没提到 MCP 服务器或 AI 助手,这个版本的源代码树里也没有以它们命名的文件。另一个独立的 MCP 服务器 REA(Mindket 上的条目名为 REA: Reverse Engineer Anything)可以让编程智能体驱动你已经装好的 Ghidra,它还支持 Hopper、IDA 和 Kuna。

如何设置

点“获取”会把一个装有 Mindket 安装说明的 zip 压缩包存进你的下载文件夹,里面按 NSA 的 README 和 Getting Started 指南列出了 Windows、macOS 和 Linux 的步骤。Ghidra 没有安装程序:装一个 JDK,解压一个发布文件,再运行一个脚本就行。

先准备好这些
需要说明
JDK64 位的 JDK 25,这是这个版本的最低要求。文档列出的免费长期支持版本是 Adoptium Temurin 和 Amazon Corretto
电脑Windows 10(1809 或更高版本)、Linux,或者 macOS 10.13 或更高版本,4 GB 内存和 1 GB 磁盘空间。文档强烈建议用双显示器
发布文件GitHub Releases 页面上的 ghidra_<version>_<release>_<date>.zip,12.2 版在页面上标的是 543 MB。两个“Source Code”文件不是要下的那个
Python 3只有调试器和 PyGhidra 需要。Getting Started 给 PyGhidra 的范围是 3.9 到 3.15,给调试器的是 3.7 到 3.14,What’s New 写的是 3.9 到 3.14,所以选 3.9 到 3.14 之间的版本三处都满足
原生组件已包含 Windows 64 位(ARM 机器通过 x86 模拟运行)和 Linux x86 64 位的版本。Getting Started 把 macOS 和 Linux ARM 64 位列为要用自己编译的原生二进制运行,所以在这些平台上要自己编译
  1. 安装 64 位的 JDK 25。
  2. 在 Releases 页面的 Assets 下下载发布用的 zip。
  3. 把它解压到一个新文件夹。README 说不要解压覆盖已有的安装。
  4. 在解压出来的文件夹里运行启动脚本。
Linux or macOS: ./ghidraRun
Windows: ghidraRun.bat

PyGhidra 的启动脚本是 ./support/pyghidraRun,在 Windows 上是 support\pyghidraRun.bat。在 macOS 上,Getting Started 给了两种绕过 Gatekeeper 隔离的办法:解压前先运行一条命令,或者在第一次启动前编译原生组件。这个发布版本没有 macOS 的原生组件,所以这一步编译反正要做。

xattr -d com.apple.quarantine ghidra_<version>_<date>.zip
cd <GhidraInstallDir>/support/gradle/
gradle buildNatives

如何使用

项目窗口用来管理你的文件,CodeBrowser 用来打开并阅读一个程序。下面的步骤来自发布包 docs 文件夹里的 Beginner 学员指南。

  1. 在项目窗口里选 File → New Project。一个人用就选 Non-Shared,再选一个文件夹并起个名字。
  2. 选 File → Import File,选中那个程序。Ghidra 认得出的话,会自动填好格式和语言。认不出就选 raw binary,自己设定语言和编译器。
  3. 把程序拖到 CodeBrowser 工具上。Ghidra 会问要不要分析它,之后也可以用 Analysis → Auto Analyze 再跑。
  4. 打开 Window → Decompiler,对照汇编阅读类 C 代码。点一个地址再按 L,就能加一个标签。
  5. 把鼠标放在某个窗口或菜单上按 F1,可以打开它的帮助页。

示例

你有一个程序,想在不打开窗口的情况下把它导入并分析。无头分析器的 README 把下面这条作为第一个例子,并说 -import 接受一个文件,也接受一个文件夹。

analyzeHeadless /Users/user/ghidra/projects Project1 -import /binaries/binary1.exe

你会在 /Users/user/ghidra/projects 里得到一个名为 Project1 的 Ghidra 项目,binary1.exe 已经导入并分析过,因为分析默认是开启的。之后在 Ghidra 里打开这个项目,就能看结果。无头分析器的 README 说,这个项目在 Ghidra 里开着的时候,分析器可能无法运行。

新手与专家

新手:学员指南说,反编译器通常都能弄对,剩下的由你来改:参数和变量的名称与类型,以及结构体成员。你补上的类型信息越多,它的输出就越好。我们会建议先拿一个你自己编译的小程序练手,因为你已经知道它应该是什么样,再把安装目录里的 docs/GhidraClass/Beginner 学一遍。可疑文件留到以后再碰。

专家:一次无头运行可以带任意多个 -preScript 和 -postScript 脚本。加上 -process -recursive,它们会对项目某个文件夹里的每个程序都跑一遍。-analysisTimeoutPerFile 限制每个文件的分析时间,-max-cpu 限制用多少个核心。PyGhidra 库也可以单独安装,要求电脑上装有 Ghidra 12.0 或更高版本。

pip install pyghidra

如果要把 Ghidra 和编程智能体配合起来用,REA 的指南说,它的桥接在 Ghidra 12.1.4 加 JDK 21 上验证过,接受 12.1 起的任何 12.x 版本,并指出 Ghidra 12.2 声明需要 JDK 25 或更高版本。它的 README 说分析在本地运行,而工具结果会交给你的智能体,智能体背后的模型提供方有自己的数据政策。它自带的 Ghidra 引擎检查命令如下。

rea doctor --provider ghidra --json

注意事项

文档描述的联网行为,都只发生在你自己设置之后。更大的风险来自你打开的文件。

  • 网络:Ghidra Server、BSim 数据库、调试器连接目标机、你在列表注释里点的链接(受 Server Allow List 限制),以及 PyGhidra 的 pip 安装。我们在文档和 launch.properties 里没有找到遥测或更新检查,但我们没有审计源代码
  • 恶意文件:README 警告说某些版本存在已知安全漏洞,并指向安全公告页面 github.com/NationalSecurityAgency/ghidra/security/advisories。Ghidra 12.2 修复了随它在 2026 年 10 月 22 日一起发布的一批安全公告,其中包括会耗尽 JVM 内存的恶意 Mach-O、SquashFS、COFF 和 Minidump 文件,以及 gdb + gdbserver via ssh 调试器启动器里的命令注入。打开不可信的文件之前,先去看看那个页面
  • 我们的建议:用最新版本打开不可信的样本,并放在用完即弃的虚拟机里
  • 合法使用:README 除了许可证之外没有规定使用规则。你能不能逆向某个程序,取决于那个程序自己的许可证和当地法律,所以两样都要先查清楚
  • 许可证:Apache-2.0。NOTICE 说,由美国政府雇员编写的部分不受美国版权保护,GPL 文件夹里是独立的 GPL 3 程序,第三方许可证放在 licenses 文件夹里。DISCLAIMER.md 另外加了“按原样提供”的免责声明和一条免责保障(hold-harmless)条款
  • 升级:备份每个项目的 .rep 文件夹和 .gpr 文件,并且绝不要解压覆盖旧的安装
  • 卸载:删掉安装文件夹。Ghidra 会把设置和缓存放在安装文件夹之外,设置文件夹可以在 Help → Runtime Information 里查到。按发布包里 support/ghidraClean 脚本自己的说明,它能找出并删除这些残留
  • 制作方:按 README 的说法,是 NSA 研究局

README 和文件

README

Ghidra:安装说明

这个工具包里只有安装说明,由 Mindket 编写。Ghidra 要从美国国家安全局(NSA)的仓库安装,地址是 https://github.com/NationalSecurityAgency/ghidra

这些说明不是 NSA 或美国政府写的,也没有得到它们的认可。README 说 Ghidra 由 NSA 研究局开发和维护。仓库里的 DISCLAIMER.md 说,项目中的任何内容都不代表美国政府认可任何产品或服务。

许可证:Apache-2.0。来源见 https://github.com/NationalSecurityAgency/ghidra/blob/master/LICENSE

LICENSE 文件是标准的 Apache License 2.0 文本。末尾的附录保留了占位行“Copyright [yyyy] [name of copyright owner]”,没有写版权所有者。NOTICE 文件解释了许可方式,见 https://github.com/NationalSecurityAgency/ghidra/blob/master/NOTICE 。由美国政府雇员编写的部分不受美国版权保护,其他贡献按该许可证发布。每个模块都在自己的 LICENSE.txt 里列出第三方组件。GPL 文件夹里的独立辅助程序按 GPL 3 发布。仓库里还有一份 DISCLAIMER.md,里面有“AS IS”(按原样提供)的免责声明和一条免责保障(hold-harmless)条款,见 https://github.com/NationalSecurityAgency/ghidra/blob/master/DISCLAIMER.md

会安装什么

Ghidra 没有安装程序。你从仓库的 Releases 页面下载一个 zip 解压,再在解压出的文件夹里运行启动脚本。按 Getting Started 的说法,这个文件夹里有这些部分:

  • Ghidra:运行所需的文件。
  • Extensions:可选组件,包括 GhidraDev 和 GhidraSleighEditor 两个 Eclipse 插件,以及 IDAPro 插件。
  • GPL:独立的 GPL 辅助程序。
  • server:Ghidra Server 的文件。
  • support:启动和调试脚本,包括 analyzeHeadless、pyghidraRun 和 ghidraDebug。
  • docs:发布说明、API 文件和教程。
  • ghidraRun 和 ghidraRun.bat:图形界面的启动脚本。
  • LICENSE、licenses(Ghidra 用到的各种许可证)和 bom.json(CycloneDX JSON 格式的软件物料清单)。

它不会改动 Windows 注册表或其他系统设置。文档说,卸载 Ghidra 只要删掉它的文件夹就行。Ghidra 会把临时文件、缓存和你的设置放在别的文件夹里,各平台的说明里有介绍。

事先需要准备

  • 64 位的 JDK 25。Ghidra 12.2 最低要求 JDK 25(见 12.2 的 What's New)。Getting Started 列出了两个免费的长期支持版本:Adoptium Temurin 和 Amazon Corretto。
  • 4 GB 内存,以及给安装文件用的 1 GB 磁盘空间。文档强烈建议用双显示器。
  • Windows 10(1809 或更高版本)、Linux,或者 macOS 10.13 或更高版本。所有 32 位系统的安装都已弃用。
  • 只有调试器和 PyGhidra 需要 Python 3。Getting Started 给 PyGhidra 的范围是 3.9 到 3.15,给调试器的是 3.7 到 3.14。12.2 的 What's New 说调试器和源码构建要 3.9 到 3.14,所以选 3.9 到 3.14 之间的版本,文档给出的每个范围都满足。

主安装命令

没有安装命令。README 给出的官方发布版安装步骤如下:

  1. 安装 64 位的 JDK 25。
  2. 从 https://github.com/NationalSecurityAgency/ghidra/releases 下载发布文件。文件名是 ghidra_<version>_<release>_<date>.zip,在“Assets”下面。两个名为“Source Code”的文件不是要下的那个。写这些说明时,最新的版本是 Ghidra 12.2,文件是 ghidra_12.2_PUBLIC_20261016.zip。发布页面列出的 SHA-256 是 2c2cd776db3c1f6a097ba418922378ac3649cadd5e844a6f5f088ae628a7be67。
  3. 解压。不要解压覆盖已有的安装。
  4. 启动 Ghidra:
./ghidraRun

在 Windows 上,脚本是 ghidraRun.bat。要改为启动 PyGhidra,就运行 ./support/pyghidraRun(Windows 上是 support\pyghidraRun.bat)。

各平台的说明

  • setup/windows.md
  • setup/macos.md
  • setup/linux.md
  • setup/headless.md:analyzeHeadless,不开窗口的批量运行
  • setup/pyghidra.md:用原生 Python 3 运行 Ghidra,以及把 PyGhidra 当作库来用
  • setup/build-from-source.md:只在你想要开发版构建时才需要
  • setup/rea.md:一个独立项目 REA,可以让编程智能体驱动已经装好的 Ghidra

网络、更新和卸载

  • Mindket 读过的文档里,联网都只发生在你自己设置之后:Ghidra Server、BSim 数据库、在列表注释里点的链接,以及 PyGhidra 的 pip 安装。各自的说明里有详情。文档没有提到遥测或更新检查。
  • Ghidra 不会自动更新。新版本就是一个新的 zip。Getting Started 说要先备份你的项目,并且不要解压覆盖旧文件夹。
  • 卸载时,删掉安装文件夹。设置和缓存在这个文件夹之外。安装目录里的 support/ghidraClean 脚本(Windows 上是 ghidraClean.bat),按它自己开头的说明,是“an interactive utility to discover and delete artifacts that Ghidra lays down on the filesystem”(一个交互式工具,用来找出并删除 Ghidra 在文件系统里留下的文件)。删文件夹之前先运行它。

安全

README 警告说,某些版本的 Ghidra 存在已知安全漏洞,并指向 https://github.com/NationalSecurityAgency/ghidra/security/advisories 。Ghidra 12.2 修复了随它在 2026 年 10 月 22 日一起发布的一批安全公告,其中包括会耗尽 JVM 内存的特制文件,所以请用最新版本打开不可信的文件。漏洞通过 GitHub 的私密报告渠道提交,见 https://github.com/NationalSecurityAgency/ghidra/blob/master/SECURITY.md

来源

文件
README.md  6 KB
setup/build-from-source.md  2 KB
setup/headless.md  3 KB
setup/linux.md  2 KB
setup/macos.md  2 KB
setup/pyghidra.md  2 KB
setup/rea.md  2 KB
setup/windows.md  2 KB

8 个文件,共 23 KB,以 zip 压缩包下载。

更新内容

  • 第 2 版 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • 第 1 版 · 2026-11-03

评价

还没有评分

写评价

还没有评价。

大家怎么说

Hacker News、Bluesky、X、Reddit、Facebook 和 YouTube 上提到这个项目的帖子和评论,来自每周一次的搜索和 Trendshift。它们不是 Mindket 写的,也未经核实,点开即可在原帖处阅读。

TiredOfLifeNSA lost access to Mythos amid Anthropic disputehttps://github.com/nationalsecurityagency/ghidraDollgithub.com/nationalsecu... this is what most AI decomp people are using tbh33 赞 · 4 条回复nickjjAsk HN: What did you find out or explore today?On the command line the `strings` command will list out printable characters in a file (including compiled binaries). I don't do any systems level programming but found myself down a small rabbit hole of learning about reverse engineering tools. https://github.com/NationalSecurityAgency/ghidra is…책달, 두송이꽃이네요어케 보면 위키리크스의 문건으로 인한 후폭발이... 위키리크스에서 CIA의 Vault 7 이란 파일을 터트렸는데, 거기서 쓰인 짱쎈 디컴파일러 기드라를 NSA에서 데헷하면서 풀어버리고 관리해서 말이죠. LLM, 즉 REA에서 이 기드라를 써서 뚫어뻥 한다고 합니다. LLM 시대전에도 있었고 기술이 당연 필요했는데, 대 LLM 시대가 오니 LLM 장난감이 되었죠. 얘 이름은 고지라 시리즈의 킹 기도라에서 가져왔습니다... github.com/NationalSecu...1 赞 · 1 条回复thefilmoreWhy is the Gmail app 700 MB?Author here. Thanks for sharing this. It seems they released an updated version of this analysis last year [1]. It matches what I saw when analyzing the IPA. I tried to do a deeper analysis on the code itself using several tools, including Google's own bloaty [2] which was not very useful without…@prosperflowio.bsky.socialThe NSA open-sourced its reverse engineering toolkit, and it decompiles binaries across tons of CPU architectures for free. 🔗 github.com/NationalSecurityAgency/ghidra Credits: github.com/NationalSecurityAgency/ghidra #ghidra #java #reverseengineering1 赞ajxsIntroduction to reverse-engineering vintage synth firmwareThank you for finding this! Depili does great work! In another comment I mentioned that I've been working on the Casio CZ-101, which uses the NEC μPD7810 processor. Depili created a processor spec for the μCOM-87 architecture, which I've continued working on in this PR:…EUVD Bot🚨 EUVD-2026-109270 📊 2.0/10 🏢 NationalSecurityAgency 📝 Ghidra before 12.2 contains a numeric truncation vulnerability in PackedDecode::skipAttribute and skipAttributeRemaining in marshal.cc th... 🔗 https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-109270 #cybersecurity #infosec #cve #euvdSquonk42Introduction to reverse-engineering vintage synth firmwareI found this: https://github.com/NationalSecurityAgency/ghidra/pull/6314EUVD Bot🚨 EUVD-2026-108329 📊 6.8/10 🏢 NationalSecurityAgency 📝 Ghidra through 12.2 contains an uncontrolled memory allocation vulnerability in BinaryField.read() that allows attackers to exhaust heap ... 🔗 https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-108329 #cybersecurity #infosec #cve #euvdmdanielShow HN: I wrote a Java decompiler in pure C languagehttps://github.com/NationalSecurityAgency/ghidra/blob/Ghidra... (Apache 2)EUVD Bot🚨 EUVD-2026-108332 📊 6.8/10 🏢 NationalSecurityAgency 📝 Ghidra 10.3 before 12.2 contains an improper handling of highly compressed data vulnerability in ThemeReader.processIconFile() that fails... 🔗 https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-108332 #cybersecurity #infosec #cve #euvd

搜索日期

Mindket 的更多商品

查看 Mindket 的全部商品

anaksor-ocr

Sokheng · 工具包

这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。

新上架

Qwen2.5-7B-Instruct-GGUF

Qwen · 工具包

Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。

新上架

ACE-Step 1.5 XL SFT

ACE-Step · 工具包

用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。

新上架

开发类的相似商品

查看开发类的全部商品

Claude Code Skills & Plugins

alirezarezvani · 技能

为 Claude Code 和其他编程智能体提供 411 个现成技能,按角色分组,从工程、产品到营销、财务和合规。以插件方式安装。适合开发者和业务团队。

新上架29.8k

buzz

block · 工具包

可自行托管的工作空间,人和 AI 智能体在同样的房间里协作,基于 Nostr 中继,把每个动作记录为签名事件。适合想自己运行中继的团队。

新上架37.3k

plannotator

backnotprop · 工具包

把你的 AI 编程智能体的计划、规格和代码改动在浏览器里打开,让你加批注或评论,并把反馈直接发回给智能体。

新上架10.5k