一、项目概览
IDA Pro MCP 是为 IDA Pro 逆向工程软件提供的 MCP 服务实现,支持通过 MCP 协议与各类 AI 辅助工具进行交互。
相关资源
- 源码:https://github.com/mrexodia/ida-pro-mcp
- 演示视频:https://github.com/user-attachments/assets/6ebeaa92-a9db-43fa-b756-eececce2aca0
- 逆向数据集:https://github.com/mrexodia/mcp-reversing-dataset
- MCP 协议官网:https://modelcontextprotocol.io
二、核心功能
MCP 服务接口
1、基础查询
check_connection
: 检查 IDA 插件运行状态get_metadata()
: 获取当前 IDB 元数据get_current_address()
: 获取用户当前选中地址
2、函数分析
get_function_by_name(name)
: 按名称查询函数decompile_function(address)
: 反编译指定地址函数disassemble_function(start_address)
: 获取函数汇编代码
3、变量操作
rename_local_variable()
: 重命名局部变量set_global_variable_type()
: 设置全局变量类型declare_c_type()
: 通过 C 声明创建本地类型
4、交叉引用
get_xrefs_to(address)
: 获取指定地址交叉引用get_entry_points()
: 获取所有入口点
三、环境要求
- Python 3.11+
- 推荐使用
idapyswitch
切换 Python 版本
- 推荐使用
- IDA Pro 8.3+ (推荐 9.0+)
- MCP 客户端 (任选其一):
四、安装指南
自动安装
pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp
ida-pro-mcp --install
注意:安装后需完全重启 IDA 及相关 IDE 客户端
手动安装(高级用户)
1、安装 UV 工具链:
pip install uv # Windows
curl -LsSf https://astral.sh/uv/install.sh | sh # Linux/Mac
2、配置 MCP 服务端 JSON:
{
"mcpServers": {
"github.com/mrexodia/ida-pro-mcp": {
"command": "uv",
"args": ["--directory", "c:\\MCP\\ida-pro-mcp", "run", "server.py"]
}
}
}
五、使用建议
提示词工程
LLM 易产生幻觉,建议采用以下策略:
1、优先使用 convert_number
工具处理数值转换
2、分步骤操作:
- 检查反编译结果并添加注释
- 重命名变量和函数
- 修正变量类型(特别是指针和数组)
3、最终生成包含分析步骤的report.md
精度优化技巧
1、预处理混淆代码:
- 移除字符串加密
- 处理控制流平坦化
2、使用 Lumina/FLIRT 识别库函数
3、配合 math-mcp 处理复杂运算
六、开发指南
功能扩展
1、在 mcp-plugin.py
中添加 @jsonrpc
装饰函数
2、开发测试:
uv run mcp dev src/ida_pro_mcp/server.py
3、访问测试接口:http://localhost:5173
版本管理
生成变更日志:
git log --first-parent --no-merges 1.2.0..main "--pretty=- %s"
七、同类方案对比
项目 | 协议支持 | 特点 |
---|---|---|
taida957789/ida-mcp-server-plugin | SSE | 需手动安装依赖 |
fdrechsler/mcp-server-idapro | MCP | TypeScript 实现 |
MxIris-Reverse-Engineering/ida-mcp-server | 自定义协议 | 基础实现 |
伊织 xAI 2025-05-03(六)