项目简介

IDA Pro MCP服务器是一个桥梁,它使用 Model Context Protocol (MCP) 标准协议,使得AI助手能够与IDA Pro这一强大的反汇编和调试工具进行交互。通过这个服务器,AI助手可以执行IDA Pro的Python脚本,获取二进制文件的各种信息,从而实现自动化逆向工程和二进制分析任务。

主要功能点:

  • 执行IDA Pro Python脚本: 允许AI助手远程执行IdaPython脚本,实现对IDA Pro的编程控制。
  • 获取二进制文件信息: 提供接口获取二进制文件的字符串、导入表、导出表和函数列表等关键信息。
  • 自动化IDA Pro操作: 通过标准化的MCP协议,AI助手可以自动化执行一系列IDA Pro操作,提升逆向分析效率。
  • 安全通信: 组件间通信设计考虑了安全性,IDA Pro插件默认仅监听本地回环地址。

安装步骤:

  1. 安装 IDA Pro Remote Control 插件:

    • 将 'ida_remote_server.py' 复制到 IDA Pro 的插件目录:
      • Windows: '%PROGRAMFILES%\IDA Pro\plugins'
      • macOS: '/Applications/IDA Pro.app/Contents/MacOS/plugins'
      • Linux: '/opt/idapro/plugins'
    • 启动 IDA Pro 并打开一个二进制文件。插件将自动启动HTTP服务器,默认监听 '127.0.0.1:9045'。
  2. 安装 MCP 服务器:

    • 克隆仓库到本地:
      git clone https://github.com/fdrechsler/mcp-server-idapro
      cd mcp-server-idapro
    • 安装依赖:
      npm install
    • 构建项目:
      npm run build

服务器配置:

在你的AI助手的MCP设置文件中,配置IDA Pro MCP服务器。以下是一个示例配置,你需要根据实际情况修改 'path/to/mcp-server-idapro' 为你本地仓库的路径。

{
  "mcpServers": {
    "ida-pro": {  // 服务器名称,AI助手通过此名称引用
      "command": "node", // 启动服务器的命令,这里使用 Node.js 运行 JavaScript
      "args": ["path/to/mcp-server-idapro/dist/index.js"], // 启动命令的参数,指向编译后的 index.js 文件
      "env": {} // 环境变量,当前示例无需设置
    }
  }
}

基本使用方法:

配置完成后,AI助手即可使用名为 'ida-pro' 的MCP服务器。该服务器提供名为 'run_ida_command' 的工具,用于执行IDA Pro Python脚本。

示例:

假设你有一个IDA Pro脚本 '/path/to/script.py',内容如下:

# /path/to/script.py
import idautils

# 统计函数数量
function_count = len(list(idautils.Functions()))
print(f"Binary has {function_count} functions")

# 返回函数数量
return_value = function_count

AI助手可以使用以下指令调用 'run_ida_command' 工具执行该脚本:

<use_mcp_tool>
<server_name>ida-pro</server_name>
<tool_name>run_ida_command</tool_name>
<arguments>
{
  "scriptPath": "/path/to/script.py"
}
</arguments>
</use_mcp_tool>

执行后,AI助手将获得脚本的输出结果。

安全提示:

IDA Pro Remote Control 插件默认只监听 '127.0.0.1',确保了本地访问的安全性。如果需要远程访问,请谨慎修改 'ida_remote_server.py' 中的配置,并充分了解安全风险。

信息

分类

桌面与硬件