吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11340|回复: 64
上一主题 下一主题
收起左侧

[IDA Plugin] IDA+VSCode+Trae+MCP——免费且省事的半自动化逆向辅助

  [复制链接]
跳转到指定楼层
楼主
YCCLT 发表于 2025-9-21 19:44 回帖奖励
本帖最后由 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可能会出现兼容性问题

二、安装与配置

  1. 安装IDA,即直接把压缩包解压到一个目录,放一个你喜欢的位置,这里我放在D:\Program Files\IDA Pro
  2. D:\Program Files\IDA Pro下打开cmd,运行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的配置,你会看到

    把第二个(即stdio)复制一下
  7. 打开VSCode,安装Trae插件(文心,通义,Cline也类似,不过我觉得Trae配起来最方便),然后在插件的设置中,找到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服务器的地址,端口,工具等信息
比如:

{
    "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相关内容。

  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失败,可多试几次,反正能调就对了。

一个简单的参照提示词

你是一个专为 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

免费评分

参与人数 15吾爱币 +13 热心值 +12 收起 理由
hanjiangxue001 + 1 + 1 我很赞同!
ac23 + 1 用心讨论,共获提升!
abca123 + 1 + 1 我很赞同!
TonniEY + 1 + 1 谢谢@Thanks!
naught456 + 1 + 1 我很赞同!
无聊网络 + 1 + 1 我很赞同!
aoian5173 + 1 + 1 谢谢@Thanks!
wozai + 1 我很赞同!
636980 + 1 我很赞同!
sijor + 1 + 1 谢谢@Thanks!
smile1110 + 1 热心回复!
weidechan + 1 + 1 用心讨论,共获提升!
pizazzboy + 2 + 1 热心回复!
shadmmd + 1 用心讨论,共获提升!
9324 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
gjianbo 发表于 2025-9-23 06:07
我在创建智能体的时候选择 ida pro mcp提示工具过多,只能使用40个,而这个是47个,楼主是怎么解决的?

免费评分

参与人数 1热心值 +1 收起 理由
wozai + 1 热心回复!

查看全部评分

推荐
无聊网络 发表于 2026-3-7 11:33
2026-03-07T11:30:43.013+08:00 [error] [mcp.config.usrlocalmcp.ida-pro-mcp] ExtHostMCPService#$start list tools failed
2026-03-07T11:33:05.194+08:00 [info] [mcp.config.usrlocalmcp.ida-pro-mcp] MCPServerManager#listTools Listing tools...
2026-03-07T11:33:07.208+08:00 [error] [mcp.config.usrlocalmcp.ida-pro-mcp] MCPServerManager#listTools Got tools failed: MCP error -32000: Failed to connect to IDA Pro! Did you run Edit -> Plugins -> MCP (Ctrl+Alt+M) to start the server?
Traceback (most recent call last):
  File "D:\ida\python311\Lib\site-packages\ida_pro_mcp\server.py", line 50, in dispatch_proxy
    conn.request("POST", "/mcp", request, {"Content-Type": "application/json"})
  File "D:\ida\python311\Lib\http\client.py", line 1303, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "D:\ida\python311\Lib\http\client.py", line 1349, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "D:\ida\python311\Lib\http\client.py", line 1298, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "D:\ida\python311\Lib\http\client.py", line 1058, in _send_output
    self.send(msg)
  File "D:\ida\python311\Lib\http\client.py", line 996, in send
    self.connect()
  File "D:\ida\python311\Lib\http\client.py", line 962, in connect
    self.sock = self._create_connection(
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\ida\python311\Lib\socket.py", line 851, in create_connection
    raise exceptions[0]
  File "D:\ida\python311\Lib\socket.py", line 836, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

2026-03-07T11:33:07.208+08:00 [error] [mcp.config.usrlocalmcp.ida-pro-mcp] ExtHostMCPService#$start list tools failed  s
谁知道这是什么原因,按照教程装了几次都不行
3#
Hmily 发表于 2025-9-22 12:05
4#
 楼主| YCCLT 发表于 2025-9-22 13:49 |楼主
Hmily 发表于 2025-9-22 12:05
贴图错了,帮你编辑了,你可以参看这里https://www.52pojie.cn/misc.php?mod=faq&action=faq&id=29&message ...

谢谢大佬!
5#
cux666 发表于 2025-9-22 17:48
大模型,还免费,赞。
6#
xixicoco 发表于 2025-9-23 00:06
很酷,以后都是ai了
7#
sunflash 发表于 2025-9-23 10:37
感谢分享,已经收藏。我记得trae是一个单独的IDA。字节出的魔改vscode
8#
gaibian45678 发表于 2025-9-23 12:12
谢谢分享。。。
9#
pizazzboy 发表于 2025-9-23 16:34
感谢分享,留个记号,有空时操作配置试试。
10#
 楼主| YCCLT 发表于 2025-9-23 17:57 |楼主
gjianbo 发表于 2025-9-23 06:07
我在创建智能体的时候选择 ida pro mcp提示工具过多,只能使用40个,而这个是47个,楼主是怎么解决的?

可以不勾选Trae-智能体-IDA下面的工具-内置-“预览”,因为用不到前端结果(其实勾上问题也不大,只是提示性质的)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-3-18 03:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表