IDA Pro MCP 服务器
模型上下文协议 (MCP) 服务器使 AI 助手能够与 IDA Pro 交互以进行逆向工程和二进制分析任务。
概述
该项目在AI助手和IDA Pro之间架起了一座桥梁。IDA Pro是一款流行的反汇编和调试器,用于逆向工程软件。它由三个主要组件组成:
- IDA Pro 远程控制插件(
ida_remote_server.py
):一个 IDA Pro 插件,可创建 HTTP 服务器来远程控制 IDA Pro 功能。 - IDA 远程客户端(
idaremoteclient.ts
):用于与 IDA Pro 远程控制服务器交互的 TypeScript 客户端。 - MCP 服务器(
index.ts
):向 AI 助手公开 IDA Pro 功能的模型上下文协议服务器。
特征
- 通过 AI 助手在 IDA Pro 中执行 Python 脚本
- 检索有关二进制文件的信息:
- 字符串
- 导入
- 出口
- 功能
- 高级二进制分析功能:
- 在指令中搜索立即值
- 在二进制文件中搜索文本字符串
- 搜索特定的字节序列
- 获取地址范围的反汇编
- 通过标准化界面自动化IDA Pro操作
- 组件之间的安全通信
先决条件
- IDA Pro 8.3 或更高版本
- Node.js 18 或更高版本
- TypeScript
示例用法ida_remote_server.py
MCP 服务器使用示例
安装
1.安装IDA Pro远程控制插件
- 将
ida_remote_server.py
复制到您的 IDA Pro 插件目录:- Windows:
%PROGRAMFILES%\IDA Pro\plugins
- macOS:
/Applications/IDA Pro.app/Contents/MacOS/plugins
- Linux:
/opt/idapro/plugins
- Windows:
- 启动 IDA Pro 并打开一个二进制文件。
- 该插件将自动在
127.0.0.1:9045
上启动 HTTP 服务器。
2. 安装 MCP 服务器
- 克隆此存储库:
- 安装依赖项:
- 构建项目:
- 在您的 AI 助手的 MCP 设置文件中配置 MCP 服务器:
用法
一旦安装并配置完成,MCP 服务器将为 AI 助手提供以下工具:
运行ida命令
执行 IDA Pro Python 脚本。
参数:
scriptPath
(必需):要执行的脚本文件的绝对路径outputPath
(可选):保存脚本输出的绝对路径
例子:
然后,AI 助手可以使用此脚本:
搜索立即值
在二进制指令中搜索立即值。
参数:
value
(必需):要搜索的值(数字或字符串)radix
(可选):数字转换的基数(默认值:16)startAddress
(可选):搜索的起始地址endAddress
(可选):搜索的结束地址
例子:
搜索文本
在二进制文件中搜索文本字符串。
参数:
text
(必填):要搜索的文本caseSensitive
(可选):搜索是否区分大小写(默认值:false)startAddress
(可选):搜索的起始地址endAddress
(可选):搜索的结束地址
例子:
搜索字节序列
在二进制中搜索特定的字节序列。
参数:
bytes
(必需):要搜索的字节序列(例如,“90 90 90”表示三个 NOP)startAddress
(可选):搜索的起始地址endAddress
(可选):搜索的结束地址
例子:
获取反汇编
获取某个地址范围的反汇编。
参数:
startAddress
(必需):反汇编的起始地址endAddress
(可选):反汇编的结束地址count
(可选):要反汇编的指令数量
例子:
获取函数
从二进制文件中获取函数列表。
参数:
- 无需
例子:
获取导出
获取二进制文件的导出列表。
参数:
- 无需
例子:
获取字符串
从二进制文件中获取字符串列表。
参数:
- 无需
例子:
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 实例。
如果需要允许远程访问,可以修改ida_remote_server.py
中的DEFAULT_HOST
变量,但要注意安全隐患。
发展
从源代码构建
运行测试
执照
本项目遵循 MIT 许可证。详情请参阅LICENSE文件。
作者
弗洛里安·德雷克斯勒 (@fdrechsler) fd@fdrechsler.com
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol server that allows secure execution of pre-approved commands, enabling AI assistants to safely interact with the user's system.Last updated -1318JavaScript
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants like Claude to perform Python development tasks through file operations, code analysis, project management, and safe code execution.Last updated -1Python
- AsecurityAlicenseAqualityA Model Context Protocol server for IDA interaction and automation. This server provides tools to read IDA database via Large Language Models.Last updated -19443PythonMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables AI assistants to search and retrieve information about security exploits and vulnerabilities from the Exploit Database, enhancing cybersecurity research capabilities.Last updated -4TypeScriptMIT License