首页
社区
课程
招聘
[分享]IDA-Script-MCP:基于 MCP 的二进制分析自动化方案
发表于: 2026-4-11 10:21 3104

[分享]IDA-Script-MCP:基于 MCP 的二进制分析自动化方案

2026-4-11 10:21
3104

项目地址:4e0K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6e0N6g2A6A6h3s2g2F1h3i4g2W2i4K6u0r3K9h3c8S2i4K6u0V1M7$3y4J5K9i4m8@1i4K6u0V1L8h3y4H3

IDA-Script-MCP 是一个基于 MCP(Model Context Protocol)协议的桥梁工具,它让 Claude、Cursor 等 AI 助手能够直接在 IDA Pro 中执行 IDAPython 脚本

运行在 IDA Pro 内部,提供 HTTP 服务端:

关键设计:

提供四个核心工具给 AI 助手:

一键安装插件并配置 MCP 客户端,支持:

安装完成后:

如果你用的是 Cursor、VS Code 等其他支持 MCP 的客户端,方法类似:

查看预设支持的客户端:

输出示例:

注意--list-clients 列出的是有预设配置路径的客户端。实际上,任何支持 MCP 协议的客户端都可以使用本项目,只需手动添加 MCP 配置即可。

手动配置方法:在客户端的 MCP 配置文件中添加:

如果你使用虚拟环境,把 python 换成虚拟环境中的 Python 路径。

如果想在项目级别配置(适合团队协作),加上 --project 参数:

现在你可以直接对 Claude 说:

用户: "帮我分析这个 crackme 的基本信息"

Claude 执行:

用户: "找出所有名字包含 'encrypt' 的函数"

Claude 执行:

用户: "谁调用了地址 0x401000 的函数?"

Claude 执行:

用户: "反编译 sub_401100 并解释它的逻辑"

Claude 执行:

当你同时打开多个 IDA 实例时:

你可以指定实例:

团队协作时,可以在项目目录创建 .mcp.json

这样每个项目可以有不同的 IDA 实例配置。

⚠️ 重要提醒

此工具允许 AI 执行任意 Python 代码,请务必:

项目还包含完整的 IDAPython 模块文档(idapython/docs/),覆盖 50+ 个 ida_* 模块,让 AI 能够准确使用 IDA API。

IDA-Script-MCP 打通了 AI 助手与 IDA Pro 之间的壁垒,让逆向工程师能够:

项目地址: ef3K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6&6L8%4g2J5N6i4y4W2M7X3&6S2L8h3g2Q4x3V1k6A6k6r3q4Q4x3X3c8K6j5%4u0A6M7s2c8Q4x3X3c8E0j5%4l9`.

声明:本文仅用于技术交流,请遵守相关法律法规,不要用于非法用途。

特性 说明
AI 驱动分析 Claude 直接操作 IDA Pro,执行反编译、分析等任务
多实例支持 同时分析多个二进制文件,跨不同 IDA 实例
完整 API 访问 支持所有 IDA 模块(idaapi、ida_hexrays、idautils 等)
一键安装 一条命令完成插件安装和 MCP 客户端配置
跨平台 支持 Windows、macOS、Linux
工具名 功能
list_ida_instances 列出所有运行中的 IDA 实例
execute_idapython 在 IDA 中执行 Python 代码
check_ida_connection 检查连接状态
get_ida_database_info 获取数据库元信息
客户端 配置位置
Claude Desktop claude_desktop_config.json
Cursor .cursor/mcp.json
VS Code settings.json
Windsurf mcp_config.json
┌─────────────────┐     MCP Protocol      ┌─────────────────┐
│   AI Assistant  │ ◄───────────────────► │   MCP Server    │
│  (Claude/Cursor)│                       │   (server.py)   │
└─────────────────┘                       └────────┬────────┘
                                                   │ HTTP
                                                   ▼
                                          ┌─────────────────┐
                                          │   IDA Plugin    │
                                          │ (ida_plugin.py) │
                                          │   Inside IDA    │
                                          └─────────────────┘
# 核心端点
GET  /health      # 健康检查
GET  /metadata    # 获取数据库信息
POST /execute     # 执行 Python 代码
# 1. 安装 Python 包
pip install ida-script-mcp

# 2. 安装插件并配置 MCP 客户端
ida-script-mcp-install install claude
# 配置 Cursor
ida-script-mcp-install install cursor

# 配置 VS Code
ida-script-mcp-install install vscode

# 配置 Windsurf
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)
{
  "mcpServers": {
    "ida-script-mcp": {
      "command": "python",
      "args": ["-m", "ida_script_mcp.server"]
    }
  }
}
# 项目级配置,会在当前目录生成 .mcp.json
ida-script-mcp-install install --project claude
[IDA-Script-MCP] Server started at http://127.0.0.1:13338
[IDA-Script-MCP] Instance ID: 12345_crackme.exe
# 获取文件信息
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()))}")
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}")
import idautils

for xref in idautils.XrefsTo(0x401000):
    caller = ida_funcs.get_func_name(xref.frm)
    print(f"调用者: {caller} at {xref.frm:#x}")

传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2026-4-11 10:22 被苏子寻月zzy编辑 ,原因:
收藏
免费 10
支持
分享
最新回复 (4)
雪    币: 20
活跃值: (911)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
 idat -A -S"xx.py" xx.exe 
2026-4-11 11:18
0
雪    币: 104
活跃值: (8407)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
tql
2026-4-13 09:44
0
雪    币: 104
活跃值: (8407)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
tql
2026-4-13 09:44
0
雪    币: 2008
活跃值: (1957)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
tql
2026-4-14 22:16
0
游客
登录 | 注册 方可回帖
返回