使用说明

项目简介

IDA MCP Server 是一个 Model Context Protocol (MCP) 服务器,它作为 LLM 客户端与 IDA Pro 逆向工程软件之间的桥梁。通过部署此服务器,LLM 能够以标准化的方式调用 IDA Pro 的强大功能,例如获取函数的汇编代码、反编译的伪代码以及全局变量信息。这使得 LLM 能够辅助安全分析人员进行代码理解、漏洞挖掘和恶意软件分析等任务。

主要功能点

  • 获取函数信息:
    • 获取指定函数名称的汇编代码。
    • 获取指定函数名称的反编译伪代码。
    • 获取当前光标所在位置函数的汇编代码。
    • 获取当前光标所在位置函数的反编译伪代码。
  • 全局变量信息: 获取指定全局变量名称的详细信息,包括地址、类型、大小和值。

安装步骤

  1. 安装 'mcp-server-ida'

    您可以使用 'uv' (推荐) 或 'pip' 安装 'mcp-server-ida'。

    • 使用 uv (推荐):

      # 使用 uvx 直接运行,无需额外安装
      uvx mcp-server-ida
    • 使用 PIP:

      pip install mcp-server-ida

      安装完成后,可以使用以下命令作为脚本运行:

      python -m mcp_server_ida
  2. 安装 IDA 插件

    将仓库中的 'plugin/ida_mcp_server_plugin.py' 文件复制到 IDA Pro 的插件目录。插件目录通常位于 IDA Pro 安装目录下的 'plugins' 文件夹中。

服务器配置

为了让 MCP 客户端(例如 Claude Desktop)连接到 IDA MCP Server,您需要在客户端的配置文件中添加 MCP 服务器的配置信息。以下是使用 'uvx' 和 'pip' 安装两种方式的配置示例,以 JSON 格式添加到客户端的配置文件中(例如 'claude_desktop_config.json'):

  • 使用 uvx 运行服务器的配置

    "mcpServers": {
      "ida": { // "ida" 为自定义的服务名称,可以根据需要修改
        "command": "uvx", // 启动服务器的命令,这里使用 uvx
        "args": [
          "mcp-server-ida" // 命令参数,指定运行 mcp-server-ida
        ]
      }
    }
  • 使用 pip 安装方式运行服务器的配置

    "mcpServers": {
      "ida": { // "ida" 为自定义的服务名称,可以根据需要修改
        "command": "python", // 启动服务器的命令,这里使用 python
        "args": [
          "-m",
          "mcp_server_ida" // 命令参数,指定运行 mcp_server_ida 模块
        ]
      }
    }

    注意: 上述配置中的 '"ida"' 字段是您为该 MCP 服务器自定义的名称,在客户端中引用此服务器时会用到这个名称。'command' 和 'args' 字段必须根据您实际的安装和运行方式进行配置。

基本使用方法

  1. 启动 IDA Pro: 确保已安装 IDA Pro 并加载了需要分析的二进制文件。安装的 IDA 插件 'ida_mcp_server_plugin.py' 会在 IDA 启动时自动加载并运行 MCP 服务器插件。
  2. 启动 MCP 服务器: 根据您的安装方式(uv 或 pip),在命令行中启动 'mcp-server-ida' 服务器。
  3. 配置 MCP 客户端: 将上述 “服务器配置” 中的 JSON 配置添加到您的 MCP 客户端配置文件中,并确保服务名称与配置中的名称一致(例如 '"ida"')。
  4. 在 MCP 客户端中使用: 在 MCP 客户端中,您可以使用配置的服务名称(例如 '"ida"')来调用 IDA MCP Server 提供的工具。例如,您可以指示 LLM 客户端调用 'ida:ida_get_function_assembly' 工具并提供函数名,以获取该函数的汇编代码。

信息

分类

开发者工具