bethington/ghidra-mcp
Ghidra MCP Server — 200+ MCP tools for AI-powered reverse engineering. GUI plugin + headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.
Ghidra MCP Server – 是什麼
Ghidra MCP 是一個生產就緒的伺服器,透過 Model Context Protocol (MCP) 暴露 Ghidra 的逆向工程引擎。實際上,它讓您能透過豐富且類型安全的 API,從外部程式(包括 AI 代理、CI 流水線或自訂腳本)控制 Ghidra 安裝(GUI 與無頭模式)。
為何重要
- 全功能 API – 253 個 MCP「工具」涵蓋 Ghidra 能做的所有事情:讀取與寫入符號、建立結構體、執行反編譯、進行 P-code 模擬、連接即時除錯器,甚至管理 Ghidra Server 專案。
- AI 友好 – 伺服器強制執行命名規則與評分邏輯,使大型語言模型助手無需在每個提示中嵌入風格指南,即可產生一致且符合風格的輸出。
- 生產級 – 原子交易、批次操作(減少約 90% 的 API 呼叫)、可設定超時與優雅的錯誤處理,使其適用於自動化流程。
- 跨二進位文件傳播 – 函數以 SHA-256 哈希識別;一次撰寫的文件可自動傳播至相同二進位檔的更新版本。
- 無頭 & Docker 就緒 – 可在無 Ghidra GUI 的情況下執行,適用於 CI/CD、雲端服務或大規模批次分析。
核心功能(如 README 所列)
| 類別 | 亮點 |
|---|---|
| MCP 整合 | 完整的 Model Context Protocol 實作;253 個工具;原子交易;批次模式;即時分析。 |
| 靜態二進位分析 | 反編譯、呼叫圖、交叉參考、完整性評分、資料流(P-code 圖)分析、結構體/列舉發現、字串提取、匯入/匯出檢視、原始記憶體讀取。 |
| 動態分析(v5.4.0) | 透過 Ghidra 的 EmulatorHelper 進行 P-code 模擬;即時除錯器橋接(17 個 Java + 22 個 Python 端點),支援 Windows(dbgeng)與 Unix(gdb/lldb)除錯器,斷點、暫存器/記憶體存取、ASLR 友好位址轉換。 |
| AI 驅動工作流程 | 多階段函數文件化流程(匈牙利命名法、類型審核、驗證評分)、平行批次文件化、孤立程式碼發現、系統性結構發現、跨版本哈希比對。 |
| 自動化與 DevOps | 管理 Ghidra 腳本、多程式處理、批量重新命名/註解/類型化、無頭伺服器模式、Ghidra Server 專案/版本控制、程式化分析器控制。 |
| 規範強制 | 命名、類型及其他規範的分層規則系統(自動修復、警告、拒絕)——對人類團隊與 AI 代理皆有益。 |
快速入門(快速啟動摘要)
- 先決條件 – Java 21、Maven 3.9+、Ghidra 12.1.2、Python 3.10+(推薦使用 uv)。安裝您作業系統對應的系統套件(Ubuntu/Debian、macOS Homebrew、Arch AUR 套件皆已文件化)。
- 克隆與預檢
git clone https://github.com/bethington/ghidra-mcp.git && cd ghidra-mcp python -m tools.setup preflight --ghidra-path <path‑to‑ghidra> - 建置與部署 –
tools.setup輔助工具會將 Ghidra JAR 安裝至本地 Maven 儲存庫,建置擴充功能,並複製至 Ghidra 的Extensions/資料夾中。python -m tools.setup ensure-prereqs --ghidra-path <path> python -m tools.setup build python -m tools.setup deploy --ghidra-path <path> - 執行橋接器 – 伺服器可透過三種傳輸方式啟動:
- stdio(預設)– 適合透過 stdin/stdout 管道傳輸 JSON 的 AI 工具。
- streamable‑http – 用於 Web 客戶端或瀏覽器的輕量級 HTTP 端點(
/mcp)。 - sse – 已棄用的舊式串流模式。
uv run bridge-mcp-ghidra # stdio uv run bridge-mcp-ghidra --transport streamable-http --mcp-port 8081 - 設定客戶端 – 將伺服器加入 MCP 兼容客戶端(如 Claude Code、Autohand Code 或開源 MCP Inspector)中,指向 stdio 命令或 HTTP URL 即可。
典型使用案例
- 自動化逆向工程流程 – CI 作業載入二進位檔,執行文件化工作流程,並輸出結構化 JSON 供後續分析使用。
- AI 輔助程式碼理解 – 大型語言模型代理查詢伺服器以取得反編譯、資料流或重新命名建議,然後寫回一致的註解。
- 即時除錯輔助 – AI 助手可透過除錯器橋接連接到執行中的程序,逐步執行程式碼,並即時查詢 P-code 狀態。
- 跨版本知識共享 – 基於哈希的文件傳播可讓您在相同產品的多個版本間保持註解同步。
專案健康指標(來自徽章)
- 測試 – 每次推送都會執行 CI。
- 發行 – 發布版本化發行。
- OpenSSF Scorecard – 安全審計評分公開可見。
- 活躍社群 – 提供討論、問題追蹤器與贊助選項。
簡而言之: ghidra‑mcp 是一個真實、持續維護的橋接器,將 Ghidra 轉變為可程式化的 AI 友好服務。它處於 AI 增強逆向工程與自動化二進位分析的前沿技術領域。
相關
- 專案
- 專案
- 專案
- 專案
- 專案