Token导航 LogoToken导航TokenDH.com
IDA Pro MCP Server logo
开发工具未说明官方级别未说明来源级核验

IDA Pro MCP Server

MCP Server

A Model Context Protocol (MCP) server that enables AI assistants to interact with IDA Pro for reverse engineering and binary analysis tasks.

工具数

0

提示词数

0

GitHub Stars

98

资源数

0
逆向工程Python开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

fdrechsler

提供方

fdrechsler

最后核验

2026/5/18 03:28

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

IDA Pro MCP服务器

一种模型上下文协议(MCP)服务器,使AI助手能够与IDA Pro交互,以执行逆向工程和二进制分析任务。

概述

该项目在AI助手和IDA Pro之间架起了一座桥梁,IDA Pro是一种用于逆向工程软件的流行反汇编程序和调试器。它由三个主要部分组成:

  1. IDA Pro远程控制插件 (ida_remote_server.py):创建HTTP服务器以远程控制IDA Pro功能的IDA Pro插件。
  2. IDA远程客户端 (idaremoteclient.ts):用于与IDA Pro远程控制服务器交互的TypeScript客户端。
  3. MCP服务器 (index.ts):一个模型上下文协议服务器,向AI助手公开IDA Pro功能。

特性

  • 从AI助手在IDA Pro中执行Python脚本
  • 检索有关二进制文件的信息:

- 字符串 - 进口 - 出口 - 函数

  • 高级二进制分析功能:

- 在指令中搜索即时值 - 在二进制文件中搜索文本字符串 - 搜索特定字节序列 - 获取地址范围的反汇编

  • 通过标准化界面自动化IDA Pro操作
  • 组件之间的安全通信

先决条件

  • IDA Pro 8.3或更高版本
  • Node.js 18或更高版本
  • TypeScript

示例用法ida_remote_server.py

curl -X POST -H "Content-Type: application/json" -d '{"script":"print(\"Script initialization...\")"}' http://127.0.0.1:9045/api/execute
{"success": true, "output": "Script initialization...\n"}

MCP服务器使用示例

Roo Output

安装

1.安装IDA Pro远程控制插件

  1. 复制 ida_remote_server.py 转到IDA Pro插件目录:

- 窗户: %PROGRAMFILES%\IDA Pro\plugins - macOS: /Applications/IDA Pro.app/Contents/MacOS/plugins - Linux: /opt/idapro/plugins

  1. 启动IDA Pro并打开一个二进制文件。
  1. 该插件将自动启动HTTP服务器 127.0.0.1:9045.

2.安装MCP服务器

  1. 克隆此存储库:
   git clone 
   cd ida-server
  1. 安装依赖项:
   npm install
  1. 构建项目:
   npm run build
  1. 在AI助手的MCP设置文件中配置MCP服务器:
   {
     "mcpServers": {
       "ida-pro": {
         "command": "node",
         "args": ["path/to/ida-server/dist/index.js"],
         "env": {}
       }
     }
   }

用法

安装和配置后,MCP服务器为AI助手提供以下工具:

run_ida_命令

执行IDA Pro Python脚本。

参数:

  • scriptPath (必需):要执行的脚本文件的绝对路径
  • outputPath (可选):将脚本输出保存到的绝对路径

例子:

# Example IDA Pro script (save as /path/to/script.py)
import idautils

# Count functions
function_count = len(list(idautils.Functions()))
print(f"Binary has {function_count} functions")

# Get the first 5 function names
functions = list(idautils.Functions())[:5]
for func_ea in functions:
    print(f"Function: {ida_name.get_ea_name(func_ea)} at {hex(func_ea)}")

# Return data
return_value = function_count

然后,AI助手可以使用此脚本:


ida-pro
run_ida_command

{
  "scriptPath": "/path/to/script.py"
}

search_immediate_value

在二进制指令中搜索即时值。

参数:

  • value (必填):要搜索的值(数字或字符串)
  • radix (可选):用于数字转换的基数(默认值:16)
  • startAddress (可选):搜索起始地址
  • endAddress (可选):搜索结束地址

例子:


ida-pro
search_immediate_value

{
  "value": "42",
  "radix": 10
}

搜索文本

在二进制文件中搜索文本字符串。

参数:

  • text (必填):要搜索的文本
  • caseSensitive (可选):搜索是否区分大小写(默认值:false)
  • startAddress (可选):搜索起始地址
  • endAddress (可选):搜索结束地址

例子:


ida-pro
search_text

{
  "text": "password",
  "caseSensitive": false
}

search_byte_sequence

在二进制文件中搜索特定的字节序列。

参数:

  • bytes (必填):要搜索的字节序列(例如,“90 90 90”表示三个NOP)
  • startAddress (可选):搜索起始地址
  • endAddress (可选):搜索结束地址

例子:


ida-pro
search_byte_sequence

{
  "bytes": "90 90 90"
}

get_disassembly

获取地址范围的反汇编。

参数:

  • startAddress (必填):拆卸开始地址
  • endAddress (可选):拆卸结束地址
  • count (可选):拆卸说明数量

例子:


ida-pro
get_disassembly

{
  "startAddress": "0x401000",
  "count": 10
}

get_functions

从二进制文件中获取函数列表。

参数:

  • 无需

例子:


ida-pro
get_functions

{}

get_exports

从二进制文件获取导出列表。

参数:

  • 无需

例子:


ida-pro
get_exports

{}

get_strings

从二进制文件中获取字符串列表。

参数:

  • 无需

例子:


ida-pro
get_strings

{}

IDA Pro远程控制API

IDA Pro远程控制插件公开了以下HTTP端点:

  • GET /api/info:获取插件信息
  • GET /api/strings:从二进制文件中获取字符串
  • GET /api/exports:从二进制文件获取导出
  • GET /api/imports:从二进制文件获取导入
  • GET /api/functions:获取函数列表
  • GET /api/search/immediate:在说明中搜索即时值
  • GET /api/search/text:在二进制文件中搜索文本
  • GET /api/search/bytes:在二进制文件中搜索字节序列
  • GET /api/disassembly:获取地址范围的反汇编
  • POST /api/execute:执行Python脚本(JSON/Form)
  • POST /api/executebypath:从文件路径执行Python脚本
  • POST /api/executebody:从原始主体执行Python脚本

安全考虑

默认情况下,IDA Pro远程控制插件仅监听 127.0.0.1 (localhost)出于安全原因。这可以防止远程访问IDA Pro实例。

如果需要允许远程访问,可以修改 DEFAULT_HOST 变量in ida_remote_server.py,但要注意安全方面的影响。

发展

从源头构建

npm run build

运行测试

npm test

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。

作者

弗洛里安·德雷克斯勒(@fdrechsler)fd@fdrechsler.com

目录标签

目录标签

逆向工程Python开发工具developer-toolsaireverse-engineeringbinary-analysisida-pluginidapythondissaseemblyaiagent本地部署二进制分析AI集成自动化工具IDA插件

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP