IDA Pro MCP插件

IDA Pro插件,通过MCP协议暴露IDA Python执行能力,使AI工具能够与IDA Pro交互进行逆向工程任务。

  • by won0-kim
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 won0-kim/idamcp

使用说明

IDAMCP

IDA Pro插件,通过以下方式公开IDA Python执行 MCP(模型上下文协议) 上交所。这允许像Claude Code这样的人工智能工具与IDA Pro进行交互,以完成逆向工程任务。

运作原理

IDAMCP在IDA Pro中运行一个MCP服务器,该服务器提供 execute_script 工具。AI客户端通过MCP发送IDA Python代码,MCP在IDA的主线程上执行。结果(stdout、stderr、返回值)被发送回客户端。

AI Client (Claude Code, etc.)
    │
    │  MCP over SSE
    ▼
IDAMCP Server (127.0.0.1:13337)
    │
    │  ida_kernwin.execute_sync
    ▼
IDA Pro Main Thread

需求

安装

git clone https://github.com/won0-kim/idamcp.git
cd idamcp
uv sync

将插件安装到IDA的插件目录中:

python install.py

要指定自定义IDA安装路径,请执行以下操作:

python install.py --ida-dir "C:\Path\To\IDA"

要卸载,请执行以下操作:

python install.py --uninstall

用法

  1. 打开IDA Pro——MCP服务器自动启动 http://127.0.0.1:13337/mcp
  2. 使用以下命令打开/关闭服务器 Ctrl+Shift+M
  3. 将MCP客户端连接到服务器

MCP客户端配置

添加到您的MCP客户端配置中(例如。, .mcp.json):

{
  "mcpServers": {
    "idamcp": {
      "type": "http",
      "url": "http://127.0.0.1:13337/mcp"
    }
  }
}

execute_script工具

服务器公开了一个 execute_script 工具。以字符串形式发送IDA Python代码。分配给 __result__ 返回一个特定值。

# List first 5 functions
import idautils
__result__ = list(idautils.Functions())[:5]
# Get function name at address
import idc
__result__ = idc.get_func_name(0x401000)

发展

uv sync --all-extras
uv run pytest
uv run ruff check .
uv run ruff format .
uv run pyright

项目结构

idamcp/
├── idamcp/
│   ├── __init__.py      # Package version
│   ├── bridge.py        # IDA main thread execution bridge
│   ├── plugin.py        # IDA plugin entry point
│   └── server.py        # FastMCP server with execute_script tool
├── tests/
│   ├── test_bridge.py
│   └── test_server.py
├── install.py           # Development plugin installer
├── idamcp_plugin.py     # Standalone plugin entry point
└── pyproject.toml

许可证

麻省理工学院