Claude-Reverser/IDA-instances-MCP

Custom build of ida-pro-mcp - stability-hardened MCP server for hosting headless IDA Pro instances

IDA-Instances-MCP – 為 IDA Pro 構建的穩定多實例 MCP 伺服器

是什麼

  • ida-pro-mcp 的自訂分支,運行一個 Model-Context-Protocol (MCP) 伺服器,允許 AI 工具(Claude Code、Cursor、VS Code 延伸模組等)以程式化方式控制 IDA Pro
  • 新增「headless-instances」層,讓多個 IDA 工作者可並行執行,每個皆擁有獨立的隔離資料庫,全部透過單一 HTTP(或 stdio)端點存取。

相較於上游的主要改進

領域 改進
數據安全 不會刪除屬於其他活躍會話的 .id0/.id1/.id2/.nam/.til 檔案。
保存可靠性 idb_save 獲得 10 分鐘預算;保存失敗不再丟棄變更。
並發性 監督器鎖不再於工作進程啟動或清理時阻塞整個伺服器。
健壯性 錯誤的 JSON-RPC 現在返回正確的錯誤碼,而非崩潰。
超時 代理超時提升至 15 分鐘(可設定),以確保長時間反編譯完成。
網路 處理端口競爭,鎖定 SSE 寫入,快取 CORS 讀取。
資源限制 跟蹤日誌上限為 64 MiB,過大的參數/結果被截斷,失敗佇列有界。
認證 每個 HTTP 請求必須提供一次性生成的 API 金鑰(GET /key)。
管理端點 /health/sessions/upload(二進位上傳,大小受限)。
空閒回收 空閒時間超過 IDA_MCP_IDLE_TIMEOUT 分鐘的會話將自動儲存並關閉。
優雅關閉 收到 SIGTERM/SIGINT 信號時,所有開啟的資料庫都會被儲存。
自動更新 啟動時檢查 GitHub 發布版本,可透過按鍵自動更新。
預設設定 監聽 0.0.0.0:9999;GUI 插件也綁定至 0.0.0.0 並使用相同的 API 金鑰。

如何運作

  1. 監督器idalib-mcp)作為輕量級 HTTP 伺服器執行。它為每個開啟的 IDB 啟動一個獨立的 工作進程,每個進程以無頭模式載入 IDA 的 idalib
  2. 客戶端透過 HTTP(或 stdio)使用 MCP(JSON-RPC)通訊。監督器將呼叫轉發給對應的工作進程,強制執行超時,並回傳結果。
  3. 啟動時產生的 API 金鑰保護所有端點;金鑰儲存在 ~/.idapro/mcp/api_key,重啟後仍保留。

典型工作流程

# 1️⃣ 激活 IDA 的 Python 環境(推薦使用 uv 作為套件管理器)
uv run "/opt/idapro-9.x/idalib/python/py-activate-idalib.py"

# 2️⃣ 啟動無頭 MCP 伺服器(預設綁定 0.0.0.0:9999)
uv run idalib-mcp

# 3️⃣ 取得一次性 API 金鑰
KEY=$(curl -s http://host:9999/key | jq -r .key)

# 4️⃣ 上傳二進位檔進行分析
curl -H "Authorization: Bearer $KEY" \
     --data-binary @sample.elf \
     "http://host:9999/upload?filename=sample.elf"

# 5️⃣ 使用相同金鑰將 MCP 兼容客戶端(如 Claude Code)指向伺服器。

執行互動式 GUI 代理

  • 在 IDA 內安裝 MCP 插件(Edit → Plugins → MCP)。
  • 從終端執行:uv run ida-pro-mcp(stdio)或 uv run ida-pro-mcp --transport http://127.0.0.1:9999,在使用完整 IDA UI 時暴露相同的 HTTP API。

設定(環境變數、命令列標誌)

  • IDA_MCP_MAX_WORKERS – 最大並行 IDA 實例數(預設 4,0 表示無限制)。
  • IDA_MCP_IDLE_TIMEOUT – 會話自動關閉前的空閒分鐘數(預設 60)。
  • IDA_MCP_PROXY_TIMEOUT – GUI 代理至工作進程的呼叫超時(預設 900 秒)。
  • IDA_MCP_API_KEY / IDA_MCP_API_KEY_FILE – 注入預先產生的金鑰。
  • 其他各種選項控制開啟時間限制、上傳大小上限、健康探測預算等。

使用場景

  • AI 輔助逆向工程:讓 Claude Code、Cursor 或其他基於 LLM 的代理在無人值守 UI 的情況下執行 IDA 分析(反編譯、符號重命名、CFG 提取)。
  • 批量分析農場:在伺服器上啟動數十個無頭 IDA 工作進程,每個處理一個獨立的二進位檔,全部透過 MCP 協調。
  • CI/CD 安全掃描:將伺服器整合至流水線中,自動上傳二進位檔,在 IDA 內執行靜態分析工具,並取得結果。

測試 倉儲附帶 ida-mcp-test 輔助工具;範例展示如何對不同分析類別的樣本 ELF 二進位檔執行測試。

授權

  • MIT(繼承自上游 ida-pro-mcp)。
  • 需要 有效的商業 IDA Pro 授權;免費版不支援。

本摘要僅基於倉儲的 README。

相關

  • 專案
  • 專案
  • 專案
  • 專案