本帖最后由 YCCLT 于 2026-3-6 17:46 编辑
2026.3更新
优雅地配置IDA MCP
MCP真好用😋😋😋
真·自动化
本文主要介绍如何简单地配置IDA的MCP,以便在打CTF时可以在VSCode中使用AI来辅助解题
环境:
- VSCode
- VSCode的插件Trae(MCP客户端)
- IDA Pro 9.1
- Python 3.11(IDA自带)
一、准备
IDA Pro 9.1压缩包,这个我是在别的文章(参考里面的那篇)“借”来的hh,注意如果IDA版本太低的话,MCP可能会出现兼容性问题
二、安装与配置
- 安装IDA,即直接把压缩包解压到一个目录,放一个你喜欢的位置,这里我放在
D:\Program Files\IDA Pro下
- 在
D:\Program Files\IDA Pro下打开cmd,运行idapyswitch.exe --force-path "D:\Program Files\IDA Pro\python311\python3.dll",这一步是为了强制IDA使用自己的python,而不是系统的python,防止出现兼容性问题
- 进入
D:\Program Files\IDA Pro\python311目录并打开终端,这一步是为了确保使用的是IDA自带的python
- 运行
python.exe -m pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp,这一步是下载MCP服务端,如果连不上github可以试试后面换成https://gitee.com/beak/ida-pro-mcp。其中-m是为了使用IDA自带的pip,而不是系统的pip
- 运行
"D:\Program Files\IDA Pro\python311\Scripts\ida-pro-mcp.exe" --install ,这一步是安装MCP客户端
- 运行
"D:\Program Files\IDA Pro\python311\Scripts\ida-pro-mcp.exe" --config,这一步是查看MCP的配置,你会看到
把第二个(即stdio)复制一下
- 打开VSCode,安装Trae插件(文心,通义,Cline也类似,不过我觉得Trae配起来最方便),然后在插件的设置中,找到MCP的配置,点击添加-手动添加,粘贴上一步复制的内容,确认
- 再找到MCP旁边的智能体,点击创建,输入名称(随便取),提示词(随便写,可以参考参照提示词),工具一定要勾上ida-pro-mcp,并且取消勾选工具-内置的“预览”项(这一步是为了防止工具过多导致的调用异常),点击创建即可
- 打开IDA,点击
Edit->Plugins->MCP,即可打开MCP客户端
- 点击Trae输入框左下角的"@",切到IDA智能体,即可使用IDA MCP
三、调试与使用
这个就不用我说了吧,直接在开了IDA智能体的Trae输入框中输入指令即可,比如IDA光标移动到目标,再在Trae里面写:帮我分析一下这个函数,即可分析当前函数。
四、其他
Trae
这个是字节跳动的免费ai代码工具,有VSCode插件版,也有Trae IDE,支持DS,豆包,Kimi之类的国产大模型和MCP。它和通义,文心,Cline,甚至Ollama,cherry studio差不多,都是调用ai工具的工具
MCP
本质上就是api,只不过是针对ai的。在这里MCP服务端就是IDA,IDA告诉客户端,自己有哪些工具,客户端就能调用这些工具。MCP客户端是Trae,Trae发送指令给MCP服务端,MCP服务端根据指令调用IDA的工具,然后把结果返回给Trae。
自定义MCP服务器
通常需要写一个json文件,来配置MCP服务器的地址,端口,工具等信息
比如:
{
"name": "cxk",
"url": "http://localhost:11451",
"tools": [
"sing",
"dance",
"rap",
"basketball"
]
}
这里就定义了一个MCP服务器,名字是cxk,地址是localhost:11451,支持唱跳rap篮球。
用于告诉客户端,你应该按照json文件调用cxk,别发错指令了。
HTTP VS STDIO
| 特性 |
HTTP 模式 |
STDIO 模式 |
| 启动方式 |
需要手动先启动 ida-pro-mcp.exe |
由 MCP Client(如 Claude Desktop)自动启动 |
| 进程管理 |
独立进程,需自行管理生命周期 |
Client 托管,随 Client 启停 |
| 适用场景 |
IDA Pro 已在运行,希望保持连接 |
希望一键启动,自动化程度高 |
| 配置复杂度 |
简单(只需 URL) |
较复杂(需指定 Python 路径和参数) |
| 稳定性 |
依赖手动维护,可能断连 |
Client 自动重启,更稳定 |
| 多实例 |
支持多个 Client 连接同一实例 |
每个 Client 启动独立实例 |
如果我要用本地大模型呢?
使用本地大模型是个很大聪明的决定,因为本地模型参数太小,看起来不太聪明的样子,特别是调用MCP时很难用(如果你有8张H100跑671b大模型的话,当我没说),除了能跑本地无审查模型以外好像就没啥用了。但是话又说回来了,有的CTF线下赛不太能联网,这个时候就只能用本地大模型了。你需要Ollama/Cherry Studio+Cline。这俩的教程自己找,本文仅探讨IDA MCP相关内容。
- 确保安装Ollama和VSCode插件Cline
- 打开Ollama,让它在后台跑
- 打开Cline,右上角设置里API Provider选择Ollama,选择模型(我这里是qwen2.5-coder:7b,选模型时要注意选支持MCP的模型)
- 右上角点击MCP服务器图标,点击installed,点击最下面的Comfigure MCP Servers,不出意外的话,安装与配置第6步执行
--config那行指令的时候就已经自动配好了。如果没有,就把安装与配置第6步产生的的配置复制过来
- 打开IDA,点击
Edit->Plugins->MCP打开MCP,再Cline里面直接提问即可。如果一直不出,可以试着把模型上下文调大。需要注意的是,本地模型比较不太聪明,调用MCP时应当指明调用的是哪个MCP,目的是什么,对提示词要求较高,若调用MCP失败,可多试几次,反正能调就对了。
一个简单的参照提示词
你是一个专为 IDA Pro 设计的 AI 助手,通过 MCP 与用户的 IDA 实例进行交互。请遵循以下原则:
1. 专业性: 你精通 x86/x64, ARM, MIPS 等多种架构的汇编语言、C/C++ 代码、程序结构、编译器优化和恶意软件分析技巧。
2. 主动性: 在用户提问时,不仅要回答问题,还应主动建议下一步有价值的分析方向或可使用的 MCP 工具。例如:“需要我帮你查看这个函数的交叉引用吗?”或“是否要我将这个区域重新定义为数组?”
3. 上下文意识: 充分利用 MCP 工具获取当前光标位置、函数、反编译代码等上下文信息,使你的回答更具针对性。
4. 安全性: 你只能通过提供的 MCP 工具与 IDA 交互。严禁输出任何可能直接操作 IDA 数据库的 Python 脚本或命令。所有修改操作(如重命名、注释、定义数据)必须通过相应的工具调用完成。
5. 清晰性: 解释你的推理过程。当识别出一个函数或结构时,简要说明你的判断依据(如特征指令、字符串、系统调用等)。
核心能力:
- 静态分析: 分析函数、控制流、数据结构、字符串和交叉引用。
- 动态调试: (若集成调试器)解释执行轨迹、分析内存状态。
- 脚本与自动化: 推荐或通过工具执行常见的分析任务。
- 知识整合: 识别常见库函数、加密算法、恶意软件家族特征。
- 可视化辅助: 建议生成控制流图 (CFG) 或导出数据以更好地理解代码。
首先,友好地问候用户,并说明你可以通过 MCP 帮助他们进行哪些方面的 IDA 分析工作。
参考
https://www.cnblogs.com/alexander17/p/19089720
|