热榜
#安全

LaurieWired/GhidraMCP

让大模型调用 Ghidra 的反编译与重命名能力,把陌生二进制的逆向分析自动化。

11,509
1,210
Java
Apache-2.0
上线 1 年

解决什么问题

逆向一个去符号的二进制文件,大部分时间是重复劳动:在反汇编里来回跳函数、读反编译出的 C 代码、猜函数用途、改个名字,然后继续。这个循环恰好是 LLM 比较擅长、人容易疲劳的部分。GhidraMCP 把 Ghidra 的核心分析能力包装成 MCP 工具,让模型可以在你正在运行的 Ghidra 会话里反编译、列出方法/类/导入导出,并直接重命名方法和数据。

有什么不同

传统做法是手动操作 Ghidra 的 GUI,或者针对每个任务写 Ghidra 脚本和插件。GhidraMCP 换了个思路:把 Ghidra 藏在 Model Context Protocol 后面,任何支持 MCP 的客户端都能当成分析前端。真正有价值的只有两点:插件跑在 Ghidra 内部、通过 HTTP 和 Python MCP server 通信,所以模型操作的是真实工程而不是导出的文本;模型还被允许写回,去改符号名,而不只是做解说。相比那种无头调用 Ghidra、或者把反编译结果贴进对话窗口的方案,它把状态留在 Ghidra 里,给 Agent 的是查询工具而不是一坨文本。

适合谁

已经用 Ghidra 并且配好了 MCP 客户端的恶意软件分析师、CTF 选手和漏洞研究人员最合适。批量初筛未知样本、或者给大工程补注释时收益最大;只是临时查一两个函数的话,配置成本反而占主导。没有 Ghidra 经验的团队,以及指望模型全自动给出定性结论的人,应该另找方案——它放大的是已有的逆向能力,而不是替代它。

上手成本

必须使用 Ghidra 12.1.4,从源码构建扩展需要 Java 21,MCP server 需要 uv 或 Python 3.10+。安装方式是下载 release 里的 zip 扩展、通过 Ghidra 的 Install Extensions 导入,再往 MCP 客户端里加一段 JSON 或 CLI 配置,README 里有现成命令。Headless 模式额外要求 Python 3.10–3.13、PyGhidra、指向 Ghidra 安装目录的环境变量,macOS 上还得先编译一次 decompiler 原生库。主要摩擦来自版本锁死,以及扩展在 localhost 上用明文 HTTP 通信——要把这个端口当作本地信任边界看待。License 为 Apache-2.0,比较宽松。README 能用,但对限制、错误处理和安全提示写得很少。

点评

这是一个 2025 年创建的项目,诞生几天内就拿到 11.5k star 和 356 分的 Hacker News 讨论,关注度真实但还很年轻;它没有上过每日 trending,不过最近一个月涨了约 1.4k star。方向很明确——用 Agent 辅助逆向——GhidraMCP 属于最早的几个靠谱桥梁之一,而不是成熟产品。绑定特定 Ghidra 版本、工具面也不大,意味着需要持续维护才不会烂掉。已经在「Ghidra + LLM」工作流里的人现在就可以用;如果要押在生产流程上,建议再等等。

Hacker News 讨论

MCP server for Ghidra
▲ 356 · 70 条评论 · 2025年3月25日

本文由 AI 根据项目 README 生成,更新于 2026年10月24日,以项目官方文档为准。