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。

相关

  • 项目
  • 项目
  • 项目
  • 项目