项目地址:cc9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6e0N6g2A6A6h3s2g2F1h3i4g2W2i4K6u0r3K9h3c8S2i4K6u0V1M7$3y4J5K9i4m8@1i4K6u0V1L8h3y4H3
一、什么是 IDA-Script-MCP?
IDA-Script-MCP 是一个基于 MCP(Model Context Protocol)协议的桥梁工具,它让 Claude、Cursor 等 AI 助手能够直接在 IDA Pro 中执行 IDAPython 脚本 。
核心特性
特性
说明
AI 驱动分析
Claude 直接操作 IDA Pro,执行反编译、分析等任务
多实例支持
同时分析多个二进制文件,跨不同 IDA 实例
完整 API 访问
支持所有 IDA 模块(idaapi、ida_hexrays、idautils 等)
一键安装
一条命令完成插件安装和 MCP 客户端配置
跨平台
支持 Windows、macOS、Linux
二、技术架构解析
整体架构
┌─────────────────┐ MCP Protocol ┌─────────────────┐
│ AI Assistant │ ◄───────────────────► │ MCP Server │
│ (Claude/Cursor)│ │ (server.py) │
└─────────────────┘ └────────┬────────┘
│ HTTP
▼
┌─────────────────┐
│ IDA Plugin │
│ (ida_plugin.py) │
│ Inside IDA │
└─────────────────┘
三大核心组件
1. IDA Pro 插件 (ida_plugin.py)
运行在 IDA Pro 内部,提供 HTTP 服务端:
GET /health
GET /metadata
POST /execute
关键设计:
主线程执行 :通过 execute_sync 确保 IDA API 调用在主线程执行
实例注册 :使用 JSON 文件记录多个 IDA 实例信息
端口自动分配 :默认端口 13338,冲突时自动递增
2. MCP 服务器 (server.py)
提供四个核心工具给 AI 助手:
工具名
功能
list_ida_instances
列出所有运行中的 IDA 实例
execute_idapython
在 IDA 中执行 Python 代码
check_ida_connection
检查连接状态
get_ida_database_info
获取数据库元信息
3. 安装器 (installer.py)
一键安装插件并配置 MCP 客户端,支持:
Claude Desktop
Cursor
VS Code
Windsurf
Claude Code
三、快速上手
环境要求
IDA Pro 8.3+
Python 3.11+
Windows / macOS / Linux
安装步骤
pip install ida-script-mcp
ida-script-mcp-install install claude
安装完成后:
IDA 插件会被安装到 ~/.idapro/plugins/(或 Windows 的 %APPDATA%\Hex-Rays\IDA Pro\plugins\)
MCP 客户端的配置会自动写入
配置其他客户端
如果你用的是 Cursor、VS Code 等其他支持 MCP 的客户端,方法类似:
ida-script-mcp-install install cursor
ida-script-mcp-install install vscode
ida-script-mcp-install install windsurf
ida-script-mcp-install install claude,cursor,vscode
查看预设支持的客户端:
ida-script-mcp-install --list-clients
输出示例:
Available MCP clients:
claude (found)
cursor (found)
vscode (found)
windsurf (found)
claude-code (found)
注意 :--list-clients 列出的是有预设配置路径的客户端。实际上,任何支持 MCP 协议的客户端都可以使用本项目 ,只需手动添加 MCP 配置即可。
手动配置方法:在客户端的 MCP 配置文件中添加:
{
"mcpServers" : {
"ida-script-mcp" : {
"command" : "python" ,
"args" : [ "-m" , "ida_script_mcp.server" ]
}
}
}
如果你使用虚拟环境,把 python 换成虚拟环境中的 Python 路径。
如果想在项目级别配置(适合团队协作),加上 --project 参数:
ida-script-mcp-install install --project claude
使用方法
第一步:启动 IDA 插件
打开 IDA Pro,加载目标二进制文件
点击 Edit → Plugins → IDA-Script-MCP(快捷键 Ctrl+Alt+S)
在输出窗口看到:[IDA-Script-MCP] Server started at http://127.0 .0 .1 :13338
[IDA-Script-MCP] Instance ID: 12345_crackme.exe
第二步:与 Claude 对话
现在你可以直接对 Claude 说:
"列出这个二进制文件中的所有函数"
"反编译 main 函数并解释它的逻辑"
"找到所有调用 printf 的地方"
"把地址 0x401000 的函数重命名为 decrypt_flag"
"分析这个函数的栈帧结构"
四、实际案例演示
案例 1:快速了解二进制结构
用户 : "帮我分析这个 crackme 的基本信息"
Claude 执行 :
print (f"文件名: {idaapi.get_root_filename()} " )
print (f"架构: {'x64' if ida_ida.inf_is_64bit() else 'x86' } " )
print (f"函数数量: {len (list (idautils.Functions()))} " )
print (f"字符串数量: {len (list (idautils.Strings()))} " )
案例 2:批量分析函数
用户 : "找出所有名字包含 'encrypt' 的函数"
Claude 执行 :
import idautils
import ida_funcs
for ea in idautils.Functions():
name = ida_funcs.get_func_name(ea)
if 'encrypt' in name.lower():
func = ida_funcs.get_func(ea)
print (f"{name} : {func.start_ea:#x} - {func.end_ea:#x} " )
案例 3:交叉引用分析
用户 : "谁调用了地址 0x401000 的函数?"
Claude 执行 :
import idautils
for xref in idautils.XrefsTo(0x401000 ):
caller = ida_funcs.get_func_name(xref.frm)
print (f"调用者: {caller} at {xref.frm:#x} " )
案例 4:反编译分析
用户 : "反编译 sub_401100 并解释它的逻辑"
Claude 执行 :
import ida_hexrays
cfunc = ida_hexrays.decompile(0x401100 )
if cfunc:
print (str (cfunc))
五、高级用法
多实例管理
当你同时打开多个 IDA 实例时:
{
"count" : 2 ,
"instances" : {
"12345_crackme.exe" : {"port" : 13338 , "database" : "crackme.exe" },
"67890_malware.dll" : {"port" : 13339 , "database" : "malware.dll" }
}
}
你可以指定实例:
"在 malware.dll 中查找导入函数"
"在 crackme.exe 的 main 函数设置断点"
项目级配置
团队协作时,可以在项目目录创建 .mcp.json:
ida-script-mcp-install install --project claude
这样每个项目可以有不同的 IDA 实例配置。
六、安全注意事项
⚠️ 重要提醒 :
此工具允许 AI 执行任意 Python 代码,请务必:
仅与可信的 AI 助手配合使用
插件默认绑定 127.0.0.1(仅本地访问)
切勿 将 HTTP 端口暴露到公网
在隔离环境中分析不可信的二进制文件
七、生态与扩展
支持的 MCP 客户端
客户端
配置位置
Claude Desktop
claude_desktop_config.json
Cursor
.cursor/mcp.json
VS Code
settings.json
Windsurf
mcp_config.json
IDAPython 文档支持
项目还包含完整的 IDAPython 模块文档(idapython/docs/),覆盖 50+ 个 ida_* 模块,让 AI 能够准确使用 IDA API。
八、总结
IDA-Script-MCP 打通了 AI 助手与 IDA Pro 之间的壁垒,让逆向工程师能够:
提升效率 :告别手动编写脚本的繁琐
降低门槛 :新人也能通过自然语言操作 IDA
增强协作 :团队共享 AI 分析能力
解放双手 :让 AI 完成重复性工作
项目地址 : c55K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6&6L8%4g2J5N6i4y4W2M7X3&6S2L8h3g2Q4x3V1k6A6k6r3q4Q4x3X3c8K6j5%4u0A6M7s2c8Q4x3X3c8E0j5%4l9`.
附录:常用命令速查
pip install ida-script-mcp
ida-script-mcp-install install claude
ida-script-mcp-install install claude,cursor,vscode
ida-script-mcp-install --list-clients
ida-script-mcp-install uninstall
声明 :本文仅用于技术交流,请遵守相关法律法规,不要用于非法用途。
传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2天前
被苏子寻月zzy编辑
,原因: