使用说明

项目简介

IDA Pro MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,旨在为 IDA Pro 逆向工程工具提供标准化的接口。通过此服务器,大型语言模型 (LLM) 客户端可以与 IDA Pro 交互,执行代码分析、反汇编、修改注释等任务,从而实现自动化逆向工程流程。

主要功能点

  • 连接检查: 验证与 IDA Pro 插件的连接状态。
  • 元数据获取: 获取当前 IDA Pro 数据库 (IDB) 的元数据信息,例如文件路径、模块名、基地址等。
  • 函数操作:
    • 根据函数名称或地址获取函数信息(地址、名称、大小)。
    • 列出数据库中的所有函数,支持分页浏览。
    • 反编译指定地址的函数,获取C伪代码。
    • 反汇编指定地址的函数,获取汇编代码。
  • 代码导航:
    • 获取当前在IDA Pro中选中的地址。
    • 获取当前选中的函数信息。
    • 获取指定地址的交叉引用信息。
    • 获取程序入口点列表。
  • 代码修改:
    • 为指定地址的代码行设置注释(同时作用于反汇编和反编译视图)。
    • 重命名函数内的局部变量。
    • 重命名函数名称。
    • 设置函数原型(函数签名)。
    • 设置局部变量的类型。
  • 数值转换: 提供数值(十进制或十六进制)到不同进制和格式的转换,包括十进制、十六进制、字节串、ASCII 字符串和二进制表示。

安装步骤

  1. 安装 Python: 确保已安装 Python 3.10 或更高版本。如果您的 IDA Pro 使用较旧的 Python 版本,可能需要使用 'idapyswitch' 工具切换到较新的版本。
  2. 安装 IDA Pro: 确保已安装 IDA Pro 8.3 或更高版本 (推荐 9.0 或更高版本)。
  3. 安装 ida-pro-mcp 包: 打开命令行终端,运行以下 pip 命令安装 'ida-pro-mcp' Python 包:
    pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp
  4. 配置并安装 MCP 服务器和 IDA 插件: 在命令行终端中运行以下命令,自动配置 MCP 服务器并安装 IDA Pro 插件:
    ida-pro-mcp --install

服务器配置

对于 MCP 客户端 (例如 Cline, Roo Code, Claude 等),您需要配置 MCP 服务器的连接信息。以下是 'ida-pro-mcp' 服务器的配置示例 (JSON 格式),请根据您的实际情况进行调整:

{
  "mcpServers": {
    "github.com/mrexodia/ida-pro-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "c:\\MCP\\ida-pro-mcp",  // 【请替换为 ida-pro-mcp 仓库在您电脑上的实际存储路径】
        "run",
        "ida-pro-mcp",
        "--install-plugin"
      ],
      "timeout": 1800,
      "disabled": false,
      "autoApprove": [ // 自动批准的工具列表
        "check_connection",
        "get_metadata",
        "get_function_by_name",
        "get_function_by_address",
        "get_current_address",
        "get_current_function",
        "convert_number",
        "list_functions",
        "decompile_function",
        "disassemble_function",
        "get_xrefs_to",
        "get_entry_points",
        "set_comment",
        "rename_local_variable",
        "rename_function",
        "set_function_prototype",
        "set_local_variable_type"
      ],
      "alwaysAllow": [ // 始终允许的工具列表 (通常与 autoApprove 列表相同)
        "check_connection",
        "get_metadata",
        "get_function_by_name",
        "get_function_by_address",
        "get_current_address",
        "get_current_function",
        "convert_number",
        "list_functions",
        "decompile_function",
        "disassemble_function",
        "get_xrefs_to",
        "get_entry_points",
        "set_comment",
        "rename_local_variable",
        "rename_function",
        "set_function_prototype",
        "set_local_variable_type"
      ]
    }
  }
}

配置参数说明:

  • 'command': 指定启动 MCP 服务器的命令。这里配置为使用 'uv' (一个快速的 Python 包安装和运行工具) 来运行 'ida-pro-mcp' 脚本。请确保您已安装 'uv',如未安装请先执行 'pip install uv'。
  • 'args': 传递给 'command' 的参数列表。
    • '--directory': 指定 'ida-pro-mcp' 仓库的根目录。请务必将其中的 'c:\MCP\ida-pro-mcp' 替换为您电脑上 'ida-pro-mcp' 仓库的实际存储路径。
    • 'run ida-pro-mcp': 使用 'uv run' 运行 'ida-pro-mcp' 脚本 (实际执行的是 'src/ida_pro_mcp/server.py')。
    • '--install-plugin': 指示服务器在启动时自动安装 IDA Pro 插件。
  • 'timeout': 设置 MCP 客户端连接到服务器的超时时间,单位为秒。
  • 'disabled': 设置为 'true' 可以禁用此 MCP 服务器配置。
  • 'autoApprove' 和 'alwaysAllow': 用于配置 MCP 客户端对工具的权限管理。这里列出了所有可用的工具,并配置为自动批准和始终允许客户端调用这些工具。您可以根据需要调整权限配置。

基本使用方法

  1. 启动 IDA Pro 插件:
    • 打开 IDA Pro 并加载您要分析的二进制文件。
    • 在 IDA Pro 菜单栏中,依次点击 'Edit -> Plugins -> MCP',启动 MCP 服务器插件。首次启动可能需要一些时间加载。
  2. 配置 MCP 客户端:
    • 打开您使用的 MCP 客户端 (例如 Cline, Roo Code 等)。
    • 在客户端的 MCP 服务器配置中,添加或修改 'ida-pro-mcp' 服务器的配置,将上述 JSON 配置信息填入客户端的相应设置中,并确保将 'args' 中的目录路径替换为您本地仓库的实际路径
  3. 使用 MCP 工具:
    • 在 LLM 客户端的 Prompt 中,您可以使用 '<use_mcp_tool>' 标签来调用 IDA Pro MCP 服务器提供的各种工具,从而指示 LLM 客户端与 IDA Pro 交互。
    • 例如,要使用 'check_connection' 工具检查客户端与 IDA Pro MCP 服务器的连接是否正常,您可以在 Prompt 中添加以下 XML 代码:
      <use_mcp_tool>
        <server_name>github.com/mrexodia/ida-pro-mcp</server_name>
        <tool_name>check_connection</tool_name>
        <arguments></arguments>
      </use_mcp_tool>
    • 根据您需要执行的逆向工程任务,参考 “主要功能点” 介绍,使用其他可用的工具,并根据工具的参数要求,在 '<arguments>' 标签中提供相应的参数 (JSON 格式)。

注意事项

  • 首次安装或更新插件后,可能需要重启 IDA Pro 才能使插件生效。
  • 配置 MCP 客户端时,请务必将服务器配置中的仓库路径替换为您的实际路径。
  • 使用 MCP 工具时,请参考工具的描述和参数说明,确保提供正确的参数。

信息

分类

桌面与硬件