clearbluejar/pyghidra-mcp
Python Command-Line Ghidra MCP
解決的問題
pyghidra-mcp 使 AI 代理與 LLM 能夠與強大的軟體逆向工程 (SRE) 套件 Ghidra 進行互動。它解決了複雜二進位分析工具與 LLM 生態系統之間的鴻溝,允許代理在無需人工手動操作 GUI 的情況下,自動執行深層逆向工程任務、執行語義程式碼搜尋並管理 Ghidra 專案。
工作原理
該專案實現了一個 Model Context Protocol (MCP) 伺服器,透過 pyghidra 與 jpype 將 Ghidra 的 Program 與 FlatProgram API 連接到 Python。它提供兩種主要的運作模式:
- Headless Mode(無介面模式):用於自動化與 CI 流水的 CLI 驅動方式。
- GUI Mode(圖形介面模式):啟動 Ghidra GUI,允許 MCP 伺服器共享即時程式狀態並在同一個 JVM 中控制 CodeBrowser。
它使用 ChromaDB 進行向量嵌入,從而實現對反編譯函數、註釋與符號的語義搜尋。它支援多種傳輸層,包括用於本地主機的 stdio 與用於共享、長時間運行的專案的 streamable-http。
適用對象
- 資安研究人員:希望使用 AI 代理進行二進位檔案分類或自動執行重複性逆向工程任務的人員。
- 軟體工程師:希望將二進位分析整合到 CI/CD 流水線中的人員。
- AI 代理開發者:正在構建需要對已編譯二進位檔案有深入結構化知識的工具的人員。
亮點
- 語義程式碼搜尋:使用向量嵌入對偽 C 程式碼進行模糊查找。
- 代理優化:具有精簡的工具描述與集中的數據回傳,以最大限度地減少 Token 使用量。
- 雙模式運作:同時支援完全的無介面自動化與即時 GUI 同步。
- 批次操作:允許在單次呼叫中反編譯多個函數或列出交叉引用,以減少 LLM 的往返次數。
- 靈活的傳輸方式:支援
stdio、streamable-http與 SSE,以滿足各種用戶端需求。
相關
- 專案
- 專案
- 專案
- 專案
- 專案