IDA Pro MCP Server

IDA Pro MCP Server

site icon
2025.03.27 112
Python二进制分析逆向工程恶意软件分析开发效率
IDA Pro MCP Server 是一个插件,允许通过模型上下文协议(MCP)接口远程查询和控制 IDA Pro。该插件使 AI 助手(如 Claude)能够直接与 IDA Pro 交互,执行二进制分析任务。
View on GitHub

Overview

基本能力

产品定位

IDA Pro MCP Server 是一个用于二进制分析的插件,通过 MCP 接口实现 AI 助手与 IDA Pro 的交互。

核心功能

  • 获取特定地址的字节数据
  • 获取反汇编代码
  • 获取反编译的伪代码
  • 查询函数名称
  • 获取段信息
  • 列出所有函数
  • 查找交叉引用
  • 获取导入/导出表
  • 获取入口点
  • 定义/取消定义函数
  • 获取各种数据类型(dword、word、byte、qword、float、double、string)
  • 获取二进制文件中的所有字符串
  • 获取指定地址的指令长度

适用场景

  • 二进制文件分析
  • 恶意软件分析
  • 逆向工程
  • 漏洞研究

工具列表

  • get_bytes: 获取指定地址的字节
  • get_disasm: 获取指定地址的反汇编
  • get_decompiled_func: 获取包含指定地址的函数的伪代码
  • get_function_name: 获取指定地址的函数名称
  • get_segments: 获取所有段信息
  • get_functions: 获取二进制中的所有函数
  • get_xrefs_to: 获取所有指向指定地址的交叉引用
  • get_imports: 获取所有导入函数
  • get_exports: 获取所有导出函数
  • get_entry_point: 获取二进制的入口点
  • make_function: 在指定地址创建函数
  • undefine_function: 取消定义指定地址的函数
  • get_dword_at: 获取指定地址的 dword
  • get_word_at: 获取指定地址的 word
  • get_byte_at: 获取指定地址的 byte
  • get_qword_at: 获取指定地址的 qword
  • get_float_at: 获取指定地址的 float
  • get_double_at: 获取指定地址的 double
  • get_string_at: 获取指定地址的 string
  • get_string_list: 获取二进制中的所有字符串
  • get_strings: 获取二进制中的所有字符串(带地址)

常见问题解答

  • 该插件适用于 IDA Pro 9.0+ 版本。
  • 安装时需要将插件文件复制到 IDA Pro 的插件目录。
  • 配置 Claude 或 VSCode 时需要在 mcp.json 文件中添加服务器配置。

使用教程

使用依赖

确保已安装 Python 和相关依赖:

pip install -r requirements.txt

安装教程

  1. ida-mcp-server.py 文件复制到 IDA Pro 的插件目录:
  2. Windows: %Programfiles%\IDA Pro 9.0\plugins\
  3. Linux: ~/.idapro/plugins/
  4. macOS: ~/Library/Application Support/IDA Pro/plugins/

  5. 配置 Claude 或 VSCode: 在 mcp.json 文件中添加以下配置:

{
  "mcpServers": {
    "IDAPro": {
      "url": "http://127.0.0.1:3000/sse",
      "type": "sse"
    }
  }
}

调试方式

  1. 在 IDA Pro 中打开一个二进制文件。
  2. 插件将自动加载并启动本地 MCP 服务器(端口 3000)。
  3. 连接 AI 助手(如 Claude)到该服务器。
  4. 使用 AI 助手执行二进制分析任务。

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。