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需求
- IDA Pro 9.0+
- Python 3.12+
- 紫外线
安装
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用法
- 打开IDA Pro——MCP服务器自动启动
http://127.0.0.1:13337/mcp - 使用以下命令打开/关闭服务器 Ctrl+Shift+M
- 将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许可证
麻省理工学院
