优雅地配置IDA MCP

MCP真好用😋😋😋
真·自动化

本文主要介绍如何简单地配置IDA的MCP,以便在打CTF时可以在VSCode中使用AI来辅助解题来偷懒

环境:

  • VSCode
  • VSCode的插件Trae(MCP客户端)
  • IDA Pro 9.1
  • Python 3.11(IDA自带)

一、准备

IDA Pro 9.1压缩包,这个我是在别的文章(参考里面的那篇文章)那里“借”来的,注意如果IDA版本太低的话,MCP可能会出现兼容性问题

二、安装与配置

  1. 安装IDA,即直接把压缩包解压到一个目录,放一个你喜欢的位置,这里我放在D:\Program Files\IDA Pro
  2. D:\Program Files\IDA Pro下打开终端,运行idapyswitch.exe --force-path "D:\Program Files\IDA Pro\python311\python3.dll",这一步是为了强制IDA使用自己的python,而不是系统的python,防止出现兼容性问题
  3. 进入D:\Program Files\IDA Pro\python311目录并打开终端,这一步是为了确保使用的是IDA自带的python
  4. 运行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
  5. 运行"D:\Program Files\IDA Pro\python311\Scripts\ida-pro-mcp.exe" --install ,这一步是安装MCP客户端
  6. 运行"D:\Program Files\IDA Pro\python311\Scripts\ida-pro-mcp.exe" --config,这一步是查看MCP的配置,你会看到这玩意儿把这个复制一下
  7. 打开VSCode,安装Trae插件(文心,通义,Cline也类似,不过我觉得Trae配起来最方便),然后在插件的设置中,找到MCP的配置,点击添加-手动添加,粘贴上一步复制的内容,确认
    MCP
  8. 再找到MCP旁边的智能体,点击创建,输入名称(随便取),提示词(随便写,可以参考这里),工具一定要勾上ida-pro-mcp,并且取消勾选工具-内置的“预览”项(这一步是为了防止工具过多导致的调用异常),点击创建即可
    智能体
  9. 打开IDA,点击Edit->Plugins->MCP,即可打开MCP客户端
  10. 点击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服务器的地址,端口,工具等信息
比如:

1
2
3
4
5
6
7
8
9
10
{
"name": "cxk",
"url": "http://localhost:11451",
"tools": [
"sing",
"dance",
"rap",
"basketball"
]
}

这里就定义了一个MCP服务器,名字是cxk,地址是localhost:11451,支持唱跳rap篮球。
用于告诉客户端,你应该按照json文件调用cxk,别发错指令了。

如果我要用本地大模型呢?

使用本地大模型是个很大聪明艾斯·比的决定,因为本地模型参数太小,看起来不太聪明的样子,特别是调用MCP时很难用(如果你有8张H100跑671b大模型的话,当我没说),除了能跑本地无审查涩涩模型以外好像就没啥用了。但是话又说回来了,有的CTF线下赛不太能联网,这个时候就只能用本地大模型了。你需要Ollama/Cherry Studio+Cline。这俩的教程自己找,本文仅探讨IDA MCP相关内容。

  1. 确保安装Ollama和VSCode插件Cline
  2. 打开Ollama,让它在后台跑
  3. 打开Cline,右上角设置里API Provider选择Ollama,选择模型(我这里是qwen2.5-coder:7b,选模型时要注意选支持MCP的模型)
  4. 右上角点击MCP服务器图标,点击installed,点击最下面的Comfigure MCP Servers,不出意外的话,刚才第6步执行--config那行指令的时候就已经自动配好了。如果没有,就把刚才第6步产生的的配置复制过来
  5. 打开IDA,点击Edit->Plugins->MCP打开MCP,再Cline里面直接提问即可。如果一直不出,可以试着把模型上下文调大。需要注意的是,本地模型比较不太聪明,调用MCP时应当指明调用的是哪个MCP,目的是什么,对提示词要求较高,若调用MCP失败,可多试几次,反正能调就对了。

参照提示词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
你是一个专为 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