你是否曾经希望AI能够直接在IDA Pro中执行脚本、搜索指令、分析二进制文件,并自动化逆向工程任务?今天要介绍的开源项目MCP服务器IDA Pro版,正是为了实现这个目标而设计的。它由Florian Drechsler开发,通过MCP协议让AI助手能够与IDA Pro交互,执行逆向工程和二进制分析任务。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | MCP服务器IDA Pro版 |
| GitHub地址 | https://github.com/fdrechsler/ida-pro-mcp-server |
| 项目描述 | 一种模型上下文协议服务器,可使AI助手与IDA Pro交互,以执行反向工程和二进制分析任务。 |
| 作者 | fdrechsler |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | TypeScript, Python |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-04-23 |
一、项目介绍
MCP服务器IDA Pro版是一个让AI助手能够与IDA Pro交互的桥梁。它由三个主要组件构成:
- IDA Pro远程控制插件 (
ida_remote_server.py):在IDA Pro内部创建一个HTTP服务器 - IDA远程客户端 (
idaremoteclient.ts):TypeScript客户端,与服务器交互 - MCP服务器 (
index.ts):向AI助手暴露IDA Pro的功能
通过这个工具,AI可以执行各种逆向工程任务:
- 在IDA Pro中执行Python脚本
- 检索二进制信息(字符串、导入、导出、函数)
- 搜索立即数、文本字符串、字节序列
- 获取地址范围内的反汇编代码
- 自动化IDA Pro操作
二、核心优势
功能全面
提供了7个MCP工具,覆盖了逆向工程的核心需求:
run_ida_command:执行IDA Pro Python脚本search_immediate_value:搜索指令中的立即数search_text:搜索文本字符串search_byte_sequence:搜索字节序列get_disassembly:获取反汇编代码get_functions:获取函数列表get_exports/get_strings:获取导出和字符串
灵活的执行方式
支持三种方式执行Python脚本:
- 通过文件路径执行
- 通过原始正文执行
- 通过JSON/Form POST请求
安全设计
默认只在127.0.0.1(本地主机)上监听,防止远程访问IDA Pro实例。
标准化接口
通过HTTP API和MCP协议提供标准化的接口,易于集成。
完整的API覆盖
IDA Pro远程控制插件暴露了完整的HTTP端点,可供其他工具直接调用。
三、适用场景
AI辅助逆向工程
让AI自动分析二进制文件,识别关键函数,搜索特定模式。
恶意软件分析
AI可以自动化执行分析脚本,提取IOC,生成报告。
漏洞研究
AI可以搜索特定的指令序列,识别潜在的漏洞模式。
CTF逆向挑战
在CTF比赛中,AI可以协助分析二进制文件,快速找到flag。
自动化分析流程
将IDA Pro操作集成到自动化分析管道中。
四、安装教程
系统要求
| 工具 | 用途 | 下载/安装方式 |
|---|---|---|
| IDA Pro | 逆向工程软件 | [https://hex-rays.com/ida-pro/] (版本要求:8.3 或更高) |
| Node.js | JavaScript运行环境 | [https://nodejs.org/] (版本要求:18.0 或更高) |
| Git | 克隆仓库 | [https://git-scm.com/] |
| MCP客户端 | 如Claude Desktop、Cursor等 | 根据客户端官网下载 |
详细安装步骤
第一步:安装IDA Pro远程控制插件
将ida_remote_server.py复制到IDA Pro的插件目录:
- Windows:
%PROGRAMFILES%\IDA Pro\plugins - macOS:
/Applications/IDA Pro.app/Contents/MacOS/plugins - Linux:
/opt/idapro/plugins
启动IDA Pro并打开一个二进制文件。插件会自动在127.0.0.1:9045上启动HTTP服务器。
第二步:安装MCP服务器
git clone https://github.com/fdrechsler/ida-pro-mcp-server.git
cd ida-pro-mcp-server
npm install
npm run build第三步:配置MCP客户端
在MCP配置文件中添加:
{
"mcpServers": {
"ida-pro": {
"command": "node",
"args": ["/path/to/ida-pro-mcp-server/dist/index.js"],
"env": {}
}
}
}第四步:重启MCP客户端
保存配置文件后,重启Claude Desktop或Cursor。
五、使用示例
配置完成后,你就可以在MCP客户端中使用自然语言来调用IDA Pro的功能了。
示例1:执行Python脚本
用户指令:“在IDA Pro中执行一个脚本,统计二进制文件中的函数数量”
AI会调用run_ida_command工具,执行类似下面的脚本:
import idautils
import ida_name
function_count = len(list(idautils.Functions()))
print(f"Binary has {function_count} functions")示例2:搜索立即数
用户指令:“在二进制文件中搜索立即数0x42”
AI会调用search_immediate_value工具:
{
"value": "42",
"radix": 16
}示例3:搜索文本字符串
用户指令:“搜索二进制文件中的'password'字符串,不区分大小写”
AI会调用search_text工具:
{
"text": "password",
"caseSensitive": false
}示例4:搜索字节序列
用户指令:“搜索字节序列90 90 90(三个NOP指令)”
AI会调用search_byte_sequence工具:
{
"bytes": "90 90 90"
}示例5:获取反汇编代码
用户指令:“获取从0x401000开始的10条指令的反汇编”
AI会调用get_disassembly工具:
{
"startAddress": "0x401000",
"count": 10
}示例6:获取函数列表
用户指令:“列出二进制文件中的所有函数”
AI会调用get_functions工具。
示例7:直接调用HTTP API
你也可以直接通过curl调用IDA Pro远程控制API:
# 执行脚本
curl -X POST -H "Content-Type: application/json" \
-d '{"script":"print(\"Hello from API\")"}' \
http://127.0.0.1:9045/api/execute
# 获取函数列表
curl http://127.0.0.1:9045/api/functions
# 搜索立即数
curl "http://127.0.0.1:9045/api/search/immediate?value=42&radix=10"六、常见问题
问题1:IDA Pro插件没有自动启动HTTP服务器
解决方案:
- 确认插件文件已复制到正确的plugins目录
- 完全重启IDA Pro
- 检查插件是否被安全软件拦截
问题2:MCP客户端无法连接到IDA Pro
解决方案:
- 确认IDA Pro已打开一个二进制文件
- 确认HTTP服务器正在运行:访问
http://127.0.0.1:9045/api/info - 检查防火墙是否阻止了9045端口
问题3:执行脚本时返回空输出
解决方案:
- 脚本中的print输出会被捕获,确保使用print语句
- 检查脚本是否有语法错误
- 尝试使用绝对路径执行脚本文件
问题4:搜索功能返回0结果
解决方案:
- 确认搜索值正确(立即数注意基数)
- 扩大搜索范围(不指定startAddress/endAddress)
- 检查二进制文件是否包含目标内容
问题5:Node.js版本要求
解决方案:MCP服务器需要Node.js 18或以上版本。通过node -v检查版本。
七、总结
MCP服务器IDA Pro版是另一个优秀的IDA Pro MCP实现,与之前介绍的IDA自动化反编译工具相比,它有自己独特的特点:通过HTTP API暴露IDA Pro功能,架构更清晰,易于调试和扩展。
这个项目的最大价值在于:
- HTTP API架构:通过标准的HTTP协议通信,易于调试和集成
- 功能完整:覆盖脚本执行、搜索、反汇编、信息检索等核心功能
- 灵活的执行方式:支持文件路径、原始正文、JSON等多种方式执行脚本
- 安全设计:默认仅本地监听,防止远程访问
- MIT许可证:可自由使用和修改
如果你是逆向工程师,并且希望将IDA Pro的能力集成到AI工作流中,MCP服务器IDA Pro版是一个非常好的选择。 它与另一个IDA MCP各有特色,可以根据具体需求选择。
作为安全研究员,这个工具让我的分析效率翻倍。
远程控制功能很适合团队协作场景。
已经加星,这个项目让IDA Pro与AI完美结合。
MIT协议开源,可以自由使用和修改。
和fdrechsler的其他项目一样,代码质量很高。