IDA-MCP 使用说明

项目简介

IDA-MCP 是一款创新的工具,它将流行的逆向工程软件 IDA Pro 转换成一个可被大型语言模型(LLM)调用的 MCP 服务器。它允许用户在多个 IDA Pro 实例之间进行协调和工具调用转发,极大地增强了 LLM 在二进制分析和调试领域的自动化能力。无论您是进行静态分析还是动态调试,IDA-MCP 都能让您的 LLM 助手直接与 IDA Pro 交互,执行复杂的逆向任务。

主要功能点

  • IDA Pro 能力暴露: 将 IDA Pro 的核心功能(如列举函数、反编译、反汇编、获取符号、字符串等)通过标准化的 MCP 接口提供给 LLM 客户端。
  • 调试器集成: 允许 LLM 控制 IDA Pro 的调试器,执行诸如读写寄存器、查看调用栈、设置/删除/启用/禁用断点、启动/停止/继续进程、单步调试等操作。
  • 多实例协调: 自动发现并协调多个运行中的 IDA Pro 实例。第一个启动的实例将作为协调器,其他实例自动注册。
  • 统一访问代理: 提供一个可选的代理服务,允许 LLM 客户端通过单一入口与任何一个注册的 IDA Pro 实例进行交互,简化了多实例环境下的管理。
  • 类型定义与修改: 支持在 IDA Pro 中声明或修改结构体、联合体、枚举、函数原型以及局部/全局变量的类型。
  • 注释与重命名: 能够设置地址注释,以及重命名函数、局部变量和全局变量。
  • 内存读取: 支持从指定地址读取原始内存字节,适用于静态分析和调试模式。

安装步骤

  1. 准备环境: 确保您的 IDA Pro 安装目录下包含 Python 环境。
  2. 复制插件: 将 'ida_mcp.py' 文件和 'ida_mcp' 文件夹复制到 IDA Pro 安装目录下的 'plugins/' 文件夹内。
  3. 安装依赖: 使用 IDA Pro 内置 Python 环境安装 'fastmcp' 库。 打开 IDA Pro 的 Python 控制台(通常快捷键是 'Shift+F2'),输入以下命令并运行:
    import sys
    import subprocess
    # 获取 IDA Pro 的 Python 解释器路径
    ida_python_exe = sys.executable
    print(f"正在使用 IDA Pro 的 Python 环境: {ida_python_exe}")
    
    try:
        # 安装 fastmcp 依赖库
        subprocess.check_call([ida_python_exe, '-m', 'pip', 'install', 'fastmcp'])
        print("fastmcp 安装成功。")
    except Exception as e:
        print(f"安装 fastmcp 失败: {e}。请确保您在 IDA Pro 的 Python 环境中运行此命令,并有网络连接。")
    或者,您也可以通过命令行手动使用 IDA 的 Python 解释器来安装依赖。假设 IDA Pro 安装在 'C:\Program Files\IDA Pro 8.3': '"C:\Program Files\IDA Pro 8.3\python\python.exe" -m pip install -r "C:\Program Files\IDA Pro 8.3\plugins\ida_mcp\requirements.txt"' 请将路径替换为您实际的 IDA Pro 安装路径。
  4. 启动 IDA Pro 服务器: 打开一个二进制文件,待 IDA Pro 分析完成后,通过 IDA Pro 菜单或快捷键(如果设置了)触发 'IDA-MCP' 插件。首次触发将启动一个本地 MCP 服务器。再次触发将停止该服务器。

服务器配置

MCP 客户端(如 Claude、Cherry Studio、Cursor、VS Code Copilot)需要配置 'ida_mcp_proxy.py' 作为其 MCP 服务器端点。'ida_mcp_proxy.py' 会自动连接并协调所有运行中的 IDA-MCP 实例。

以下是 MCP 客户端的通用配置示例(JSON 格式):

{
  "mcpServers": {
    "ida-mcp-proxy": {
      // 'command' 配置项指向您的 IDA Pro Python 环境中的 python.exe 路径。
      // 示例: "C:\\Program Files\\IDA Pro 8.3\\python\\python.exe"
      "command": "请替换为您的 IDA Pro Python 解释器完整路径",
      
      // 'args' 配置项是一个数组,其中包含 ida_mcp_proxy.py 文件的完整路径。
      // 示例: ["C:\\Program Files\\IDA Pro 8.3\\plugins\\ida_mcp\\proxy\\ida_mcp_proxy.py"]
      "args": ["请替换为您的 ida_mcp_proxy.py 脚本的完整路径"],
      
      "env": {},
      "description": "通过协调器转发工具调用的 IDA Pro MCP 代理服务器。当有多个 IDA 实例时,需要通过端口号指定目标实例,或者使用 select_instance 工具选择默认实例。"
    }
  }
}

请务必将 'command' 和 'args' 中的路径替换为您实际的 IDA Pro Python 解释器路径和 'ida_mcp_proxy.py' 脚本路径。

基本使用方法

  1. 启动 IDA Pro 实例: 按照安装步骤启动 IDA Pro 并激活 IDA-MCP 插件。您可以启动多个 IDA Pro 实例,每个实例都将自动注册到协调器。
  2. 配置 MCP 客户端: 根据上述“服务器配置”示例,在您的 LLM 客户端中配置 'ida-mcp-proxy' 服务器。
  3. LLM 调用工具: 在 LLM 客户端中,您现在可以直接调用 IDA-MCP 代理提供的工具,例如:
    • 查询所有已注册的 IDA 实例: 'list_instances()'
    • 列出当前 IDA 实例中的函数: 'list_functions(offset=0, count=10)'
    • 反编译特定地址的函数: 'decompile_function(address=0x401000)'
    • 设置地址的注释: 'set_comment(address=0x401000, comment="这是一个关键函数")'
    • 启动调试器: 'dbg_start_process()'
    • 在调试器中运行到指定地址: 'dbg_run_to(address=0x401234)'
    • 读取内存字节: 'read_memory_bytes(memory_address=0x400000, size=64)'

请注意,当有多个 IDA 实例运行时,您可能需要在工具调用时通过 'port' 参数明确指定目标实例,例如 'list_functions(offset=0, count=10, port=8765)',或者使用 'select_instance(port=<目标端口>)' 工具来设置默认目标实例。

信息

分类

桌面与硬件