
IDAMCP的修改版,AI YYDS
概览
IDA Pro 漏洞扫描与分析插件 - 集成 MCP (Model Context Protocol) 支持的 IDA Pro 安全分析工具。 自动检测二进制文件中对危险函数的调用: - : strcpy, strcat, sprintf, memcpy 等 - : printf, syslog 等 - : scanf, sscanf 等 - : system, popen, exec* 等 - : fopen, unlink 等 - : websGetVar, nvram_get, cgi_get 等 - : check_auth, verify_password 等 基于污点分析的命令注入漏洞检测: - 自动识别 (用户可控输入点) - 自动识别 (危险命令执行函数) - 追踪数据流,生成 - 可控性分析与风险等级评估 - 目录穿越检测 - 符号链接攻击 - 竞争条件 (TOCTOU) - 临时文件攻击 - 污点传播路径 - Mermaid/DOT 图表生成 - Source→Sink 路径分析 - NVRAM: nvram_get, nvram_safe_get, bcmGetNvram - UCI: uci_get, uci_get_option - CGI: websGetVar, cgiGetValue, httpGetParam - JSON: cJSON_GetObjectItem, json_get_value - 环境变量: QUERY_STRING, REQUEST_METHOD, HTTP_COOKIE - : 现代化暗色主题,支持筛选、展开详情、复制内容 - : 原生 Chooser 窗口,双击/Enter 快速跳转到代码位置 仓库内提供 Cursor Agent Skill,便于在 Cursor 中按规范调用 IDA MCP、减少卡死。Skill 位于 (随仓库一起推送到 GitHub)。在 Cursor 中打开本仓库后,将 skill 复制到项目内供 Cursor 加载:
README
以下为原文 README 节选,完整内容请查看原文。
IDA-MCP-GUI
IDA Pro 漏洞扫描与分析插件 - 集成 MCP (Model Context Protocol) 支持的 IDA Pro 安全分析工具。支持 IDA 7.x / 8.x / 9.x(含 9.2)。
功能特性
🛡️ 危险函数扫描
自动检测二进制文件中对危险函数的调用:
- 内存拷贝函数: strcpy, strcat, sprintf, memcpy 等
- 格式化字符串函数: printf, syslog 等
- 输入函数: scanf, sscanf 等
- 命令执行函数: system, popen, exec* 等
- 文件操作函数: fopen, unlink 等
- CGI处理函数: websGetVar, nvram_get, cgi_get 等
- 认证函数: check_auth, verify_password 等
💉 命令注入扫描
基于污点分析的命令注入漏洞检测:
- 自动识别 Source(用户可控输入点)
- 自动识别 Sink(危险命令执行函数)
- 追踪数据流,生成 利用链路径
- 可控性分析与风险等级评估
🔧 缓冲区溢出分析
- 栈缓冲区溢出检测
- 堆缓冲区溢出检测
- 整数溢出风险分析
📝 格式化字符串漏洞
- 格式化函数调用检测
- 可控性分析
- 利用链追踪
📂 路径穿越分析
- 目录穿越检测
- 符号链接攻击
- 竞争条件 (TOCTOU)
- 临时文件攻击
🔀 函数调用链可视化
- 污点传播路径
- Mermaid/DOT 图表生成
- Source→Sink 路径分析
🏗️ 自动结构/枚举建议
- 内存访问模式分析
- 魔数识别与枚举匹配
- 类型修复建议
🤖 LLM 语义分析接口
- 函数上下文提取
- 结构化分析提示词生成
- 批量危险函数分析
📱 MIPS/CGI 嵌入式设备支持
针对路由器、IoT 设备固件的深度支持:
支持的厂商特定函数:
| 厂商 | 命令执行 | 输入获取 |
|---|---|---|
| D-Link | lxmldbc_system, fwSystem | cgibin_get |
| TP-Link | tpSystem, httpRpmDoSystem | httpGetEnv, tpHttpdGetEnv |
| Netgear | acosSystem, acosSysExec | acosNvramConfig_get |
| ASUS | doCmd, notify_rc | tcapi_get |
| Tenda | formSysCmd, tenda_system | websGetVar, GetValue |
| 华为 | ATP_UTIL_ExecShell, VOS_System | ATP_DBGetPara |
| 小米 | mi_system, miot_system | - |
| GoAhead | websLaunchCgiProc, cgiHandler | websGetVar, ejArgs |
| OpenWrt | luci_sys_exec, ubus_call | uci_get |
支持的输入源:
- NVRAM: nvram_get, nvram_safe_get, bcmGetNvram
- UCI: uci_get, uci_get_option
- CGI: websGetVar, cgiGetValue, httpGetParam
- JSON: cJSON_GetObjectItem, json_get_value
- 环境变量: QUERY_STRING, REQUEST_METHOD, HTTP_COOKIE
📊 双重界面
- Web 界面: 现代化暗色主题,支持筛选、展开详情、复制内容
- IDA 内置窗口: 原生 Chooser 窗口,双击/Enter 快速跳转到代码位置
Cursor Skill(配合 MCP 用)
仓库内提供 Cursor Agent Skill,便于在 Cursor 中按规范调用 IDA MCP、减少卡死。Skill 位于 skills/ida-mcp/(随仓库一起推送到 GitHub)。在 Cursor 中打开本仓库后,将 skill 复制到项目内供 Cursor 加载:
mkdir -p .cursor/skills && cp -r skills/ida-mcp .cursor/skills/
详见 skills/README.md。
快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+Alt+M |
启动 MCP 服务器 |
Ctrl+Shift+D |
危险函数扫描窗口 |
Ctrl+Shift+I |
命令注入扫描窗口 |
Ctrl+Shift+S |
输入源函数窗口 |
Ctrl+Shift+B |
缓冲区溢出扫描 |
Ctrl+Shift+F |
格式化字符串扫描 |
Ctrl+Shift+P |
路径穿越扫描 |
Ctrl+Shift+A |
打开所有扫描窗口 |
安装(让 IDA 能用)
兼容 IDA 7.x / 8.x / 9.x(含 9.2)。
⚠️ 必须先让 IDA 使用 Python
本插件是 Python 插件。若 IDA 当前是 IDC 模式(底部控制台旁显示 “IDC - Native built-in language”),Python 插件不会加载,菜单里也不会出现 MCP。
切换到 Python 的方法:
- 方法一(推荐):在终端执行 IDA 自带的 Python 切换工具(先完全退出 IDA):
按提示选择本机已安装的 Python 3,然后重新打开 IDA。"/Applications/IDA Professional 9.2.app/Contents/MacOS/idapyswitch" - 方法二:在 IDA 底部控制台左侧,点击当前显示的 “IDC”,在下拉菜单里选择 “Python 3” 或 “Python”,使当前脚本语言变为 Python。部分版本下,Python 插件只有在用该方法选过 Python 后才会被加载。
切换成功后,重启 IDA,再在 Edit → Plugins 里应能看到 MCP。
- 找到 IDA 的 plugins 目录
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"ida-mcp": {
"url": "http://127.0.0.1:13337/sse"
}
}
}