文章目录
-
- 一、前置环境要求
-
- 1. 版本硬性要求
- 2. 环境预检查
- 二、正式安装流程
-
- 步骤 1:安装 ida-pro-mcp 依赖包
- 步骤 2:执行 IDA 插件安装
- 步骤 3:手动补充客户端配置(自动写入失败时)
- 三、Trae 智能体精细化配置
-
- 1. 智能体提示词模板
- 2. 「何时调用」填写模板
- 四、常见报错与排查方案
-
- 1. streamable fetch failed / 13337 端口连接失败
- 2. IDA 顶部无「IDA MCP」菜单
- 3. 连接超时(Connection Timed Out)
- 4. 连接被拒绝(Connection Refused)
- 5. ping 能通但 TCP 连不上
- 五、远程连接配置(跨设备 / WSL2 / 网络访问)
-
- 核心步骤:修改监听地址为 0.0.0.0
-
- 方法 A:修改插件源代码(永久生效,推荐)
- 方法 B:修改配置文件
- 方法 C:通过 IDA 配置界面(临时)
- 方法 D:使用环境变量
- 验证监听状态
- 防火墙配置
-
- 图形界面方式
- 命令行方式(管理员 PowerShell)
- 端口转发方案(最稳定,不依赖防火墙规则)
- 临时关闭防火墙(仅用于诊断)
- 获取服务器 IP 地址
- WSL2 远程连接专项配置
- 客户端(Trae / VS Code)配置
- 常见 WSL2 连接问题
- 安全注意事项
- 六、标准使用流程
ida-pro-mcp 是基于模型上下文协议(MCP)的 IDA Pro 服务端插件,可让 AI 客户端(Trae、Cursor 等)直接调用 IDA 的反编译、函数检索、交叉引用、字符串搜索等核心能力,自动化完成恶意样本分析、逆向工程、漏洞分析等工作。本文覆盖从环境准备、插件安装、客户端配置到常见报错排查的全流程,并包含 WSL2 远程连接方案,适配 Windows 全平台。
一、前置环境要求
1. 版本硬性要求
- IDA Pro:8.3 及以上版本(推荐 9.0+),IDA Free 免费版不支持该插件
- Python:3.11 及以上版本,必须与 IDA 内置 Python 版本完全一致(版本不匹配会导致插件加载失败)
- Git for Windows:pip 拉取 GitHub 源码依赖 Git 环境,安装时需勾选「Add Git to PATH」
- MCP 客户端:Trae / VS Code(搭配对应 MCP 插件),用于承载 AI 逆向智能体
2. 环境预检查
二、正式安装流程
步骤 1:安装 ida-pro-mcp 依赖包
以管理员身份打开 PowerShell 或 CMD,执行对应安装命令:
# 系统仅安装一个 Python 版本时使用
pip install —upgrade git+https://github.com/mrexodia/ida-pro-mcp
# 多 Python 版本共存时使用(强制指定 3.11 版本)
py –3.11 –m pip install —upgrade git+https://github.com/mrexodia/ida-pro-mcp
安装成功后会提示 Successfully installed ida-pro-mcp-x.x.x。
步骤 2:执行 IDA 插件安装
终端执行安装命令,进入交互式配置流程:
ida-pro-mcp.exe —install
按以下选项依次选择:
传输模式:选择 Streamable HTTP (recommended)
- 基于 HTTP 协议开放 13337 端口,支持远程调用、多客户端接入,适配 Trae 标准 MCP 配置方案
安装范围:选择 Global (user-level)
- 全局用户级配置,所有 Trae 项目、所有客户端均可复用,避免重复配置
目标客户端勾选:仅勾选你实际使用的工具(推荐仅勾选 Trae + VS Code)
- 勾选过多无关客户端会造成配置冗余,按需选择即可
安装成功标志:终端输出插件文件路径,示例如下:
Installed IDA Pro plugin (IDA restart required)
loader: C:\\Users\\用户名\\AppData\\Roaming\\Hex-Rays\\IDA Pro\\plugins\\ida_mcp.py
package: C:\\Users\\用户名\\AppData\\Roaming\\Hex-Rays\\IDA Pro\\plugins\\ida_mcp
步骤 3:手动补充客户端配置(自动写入失败时)
若终端提示 Skipping Trae installation (not found),说明客户端从未启动过,系统无对应配置目录,可手动写入配置:
先打开一次 Trae 并关闭,让系统自动生成配置目录
复制下方 Streamable HTTP 配置 JSON:
{
"mcpServers": {
"ida-pro-mcp": {
"type": "http",
"url": "http://127.0.0.1:13337/mcp"
}
}
}
打开 Trae → 设置 → MCP 服务器配置,粘贴 JSON 并保存
三、Trae 智能体精细化配置
1. 智能体提示词模板
直接复制填入提示词输入框,规范 AI 逆向行为:
你是专业 Windows 恶意代码静态逆向分析工程师,绑定 IDA Pro MCP 工具链,仅针对 PE 可执行程序、病毒木马样本开展安全逆向分析,专注识别程序恶意行为、加密逻辑、注入手段、持久化方式、网络通信特征。
【硬性安全规则】
1. 严禁自动调用任何修改二进制的工具:禁用 patch、patch_asm、put_int、py_exec_file 等改写样本的功能,所有补丁、修改类操作必须交由用户手动在 IDA 完成,禁止改动原始样本文件。
2. 仅使用静态只读类工具做分析:仅读取反汇编、伪代码、字符串、函数、交叉引用、内存字节、调用图等只读数据,不自动修改 IDA 数据库、不新建结构体/函数定义。
3. 样本安全约束:不得执行样本代码,仅基于 IDA IDB 数据库静态分析,禁止生成可运行漏洞利用代码。
【标准分析工作流程】
1. 先通过字符串检索、导入表分析快速锁定样本行为方向(文件操作、进程注入、注册表、网络通信等);
2. 使用反编译功能查看核心函数伪代码,拆解执行逻辑;
3. 借助交叉引用、调用图梳理函数调用关系、数据流向;
4. 利用特征字节检索定位加密、解密、Shellcode 核心逻辑;
5. 分析完成后分模块整理报告:样本基础信息、恶意行为分类、关键代码逻辑、IOC 特征。
【输出规范】
1. 分层清晰输出,区分「基础信息」「恶意行为拆解」「关键代码逻辑」「IOC 特征清单」;
2. 涉及地址、函数名、字符串时附带十六进制偏移,方便用户在 IDA 快速跳转;
3. 汇编/伪代码仅摘录核心片段,附带中文注释解释功能;
4. 给出后续分析建议,指明需要重点排查的函数与方向。
2. 「何时调用」填写模板
适用于 SOLO 模式多智能体联动,填入对应输入框:
当需要对 Windows PE 程序、病毒/木马恶意样本进行静态逆向分析,存在以下需求时调用本智能体:
1. 查看程序汇编代码、Hex-Rays 伪代码,解析函数执行逻辑;
2. 检索样本内硬编码字符串、URL、文件路径、注册表键值、加密密钥;
3. 分析导入 API,识别进程注入、文件篡改、自启动、网络外联等恶意行为;
4. 梳理函数调用图、交叉引用、数据流,追踪恶意代码执行链路;
5. 搜索特征字节、关键汇编指令,定位加密、解密、Shellcode 逻辑;
6. 读取栈变量、结构体数据,解析程序内部数据存储规则;
7. 生成恶意样本分析报告,提取威胁指标 IOC、病毒行为特征。
无需调用场景:动态调试、修改二进制补丁、批量生成 IDA 签名、自动修正程序类型结构。
四、常见报错与排查方案
1. streamable fetch failed / 13337 端口连接失败
核心原因:IDA 内的 RPC 服务未手动启动,或端口被拦截、占用
排查步骤:
打开 IDA 并载入任意样本 / IDB 文件,点击 IDA MCP → Start RPC Server,确认底部输出 Listening on http://127.0.0.1:13337
终端执行命令验证端口监听:
netstat –ano | findstr "13337"
无输出则服务未启动,有非 IDA 进程占用则关闭对应程序
临时关闭 Windows Defender 防火墙测试,排除本地端口拦截
确认 IDA 顶部存在 IDA MCP 菜单,无菜单则插件加载失败
2. IDA 顶部无「IDA MCP」菜单
常见原因:Python 版本不匹配、插件文件缺失、未载入样本
解决方法:
3. 连接超时(Connection Timed Out)
原因:防火墙阻止了 TCP 连接
解决方法:
4. 连接被拒绝(Connection Refused)
原因:服务未监听在 0.0.0.0
解决方法:
5. ping 能通但 TCP 连不上
原因:ICMP 和 TCP 的防火墙规则独立
解决方法:ping 使用 ICMP 协议,TCP 连接需要单独配置防火墙规则允许 13337 端口
五、远程连接配置(跨设备 / WSL2 / 网络访问)
核心步骤:修改监听地址为 0.0.0.0
IDA MCP 插件默认监听 127.0.0.1:13337,仅允许本机访问。要让其他设备或 WSL2 虚拟机连接,必须将监听地址改为 0.0.0.0,使服务监听所有网络接口。
方法 A:修改插件源代码(永久生效,推荐)
找到 IDA 插件目录下的 ida_mcp.py 文件,修改默认绑定地址:
C:\\Users\\用户名\\AppData\\Roaming\\Hex-Rays\\IDA Pro\\plugins\\ida_mcp.py
打开文件,找到类似以下代码:
DEFAULT_HOST = "127.0.0.1"
DEFAULT_PORT = 13337
修改为:
DEFAULT_HOST = "0.0.0.0"
DEFAULT_PORT = 13337
修改后重启 IDA Pro 即可永久生效。这是最可靠的方案,实测将 127.0.0.1 改为 0.0.0.0 后连接即成功。
方法 B:修改配置文件
找到 IDA 插件配置文件并修改 server_address 字段:
C:\\Users\\用户名\\AppData\\Roaming\\Hex-Rays\\IDA Pro\\plugins\\ida_mcp\\config.json
{
"server_address": "0.0.0.0:13337",
"transport": "http"
}
方法 C:通过 IDA 配置界面(临时)
此方法重启 IDA Pro 后可能恢复为 127.0.0.1,需要重新设置,不推荐长期使用。
方法 D:使用环境变量
启动 IDA Pro 前设置环境变量:
$env:IDA_MCP_HOST = "0.0.0.0"
& "C:\\Program Files\\IDA Pro\\ida64.exe"
验证监听状态
修改后在物理机 PowerShell 中运行:
netstat –ano | findstr 13337
- 显示 0.0.0.0:13337 → 监听正确,所有接口均可访问
- 显示 127.0.0.1:13337 → 配置未生效,需重启 IDA Pro
防火墙配置
需要允许外部设备访问 13337 端口。
图形界面方式
命令行方式(管理员 PowerShell)
# 添加防火墙规则
netsh advfirewall firewall add rule name="IDA-MCP-13337" dir=in action=allow protocol=TCP localport=13337 remoteip=any profile=any
# 验证规则
netsh advfirewall firewall show rule name="IDA-MCP-13337"
# 备选:使用 PowerShell 高级防火墙命令
New-NetFirewallRule –DisplayName "IDA-MCP-13337" –Direction Inbound –Protocol TCP –LocalPort 13337 –Action Allow –Profile Any –RemoteAddress Any
端口转发方案(最稳定,不依赖防火墙规则)
如果防火墙规则不生效(尤其 WSL2/Hyper-V 虚拟网络场景),使用端口转发是最可靠的方案:
# 添加端口转发:将所有接口的 13337 端口转发到 127.0.0.1:13337
netsh interface portproxy add v4tov4 listenport=13337 listenaddress=0.0.0.0 connectport=13337 connectaddress=127.0.0.1
# 验证
netsh interface portproxy show v4tov4
临时关闭防火墙(仅用于诊断)
# 关闭防火墙
netsh advfirewall set allprofiles state off
# 测试连接…
# 重新开启防火墙
netsh advfirewall set allprofiles state on
获取服务器 IP 地址
在服务器端执行命令获取本地 IP:
ipconfig
查找 IPv4 地址,如 192.168.1.100。
WSL2 远程连接专项配置
当 IDA Pro 运行在物理机(Windows)上,开发环境在 WSL2 中时,网络拓扑如下:
| 物理机(Windows) | 192.168.0.107 | 运行 IDA Pro |
| WSL2 虚拟机 | 172.30.154.92 | 开发环境 |
| WSL2 网关 | 172.30.144.1 | Windows 主机虚拟网卡 |
WSL2 访问 Windows 主机有两条路径:
| 物理网卡 | 192.168.0.107 | 不稳定 | 受 Windows 网络配置文件(公用/专用)和防火墙策略影响 |
| 虚拟网关 | 172.30.144.1 | 稳定 | 走 Hyper-V 虚拟交换机,不经过物理防火墙 |
推荐使用虚拟网关 IP,在 WSL2 中动态获取当前网关 IP:
ip route | grep default | awk '{print $3}'
在 WSL2 中测试连接:
# 推荐:通过 WSL2 虚拟网关测试
curl -v http://172.30.144.1:13337/config.html
# 备选:通过物理机 LAN IP 测试
curl -v http://192.168.0.107:13337/config.html
如果返回 HTTP 响应(200 状态码),说明连接成功。
客户端(Trae / VS Code)配置
根据部署场景,在 MCP 配置中使用对应的 URL:
{
"mcpServers": {
"ida-pro-mcp": {
"type": "http",
"url": "http://127.0.0.1:13337/mcp"
}
}
}
- 本机访问:保持 127.0.0.1
- 局域网其他设备:替换为服务器物理 IP,如 http://192.168.1.100:13337/mcp
- WSL2 访问:替换为虚拟网关 IP,如 http://172.30.144.1:13337/mcp(推荐)
WSL2 重启后网关 IP 可能变化,需重新获取并更新配置。
常见 WSL2 连接问题
Windows 重启后连不上(Connection Refused)
现象:Windows 端 netstat 确认 0.0.0.0:13337 正常监听,防火墙规则也存在,但 WSL2 通过 192.168.0.107 连接被拒绝。
原因:Windows 重启后,网络配置文件可能从"专用"切换为"公用",导致防火墙规则虽存在但不生效;Hyper-V 虚拟交换机重建后物理网卡路径的流量转发行为改变。
解决:
# 检查网络配置文件类型
Get-NetConnectionProfile
# 如果 NetworkCategory 显示 Public,改为 Private:
Set-NetConnectionProfile –InterfaceAlias "以太网" –NetworkCategory Private
根本解决方案:将 MCP 客户端 URL 从 http://192.168.0.107:13337/mcp 改为 http://<虚拟网关IP>:13337/mcp,彻底绕开物理网卡路径的不稳定性。



