DownWithUp/IDADomainMCP
GitHub: DownWithUp/IDADomainMCP
一个基于 FastMCP 的轻量级服务器,使 AI 智能体能够无头调用 IDA Pro 的 Domain API 执行自动化逆向工程分析任务。
Stars: 1 | Forks: 0
# IDA Domain MCP Server
一个轻量级的 MCP server,允许 AI agents 在 IDA 数据库文件上无头执行逆向工程任务。
https://github.com/user-attachments/assets/86a98360-86d5-482c-98d7-ab45783e32e3
## 关于
该项目有两个目标:
* 帮助我更好地理解和学习 MCP 的工作原理以及 agents 如何使用它
* 允许利用 Hexrays 强大的反汇编器和反编译器进行无头“沉浸式”逆向工程。
这个 MCP server 使用了 [FastMCP](https://fastmcp.wiki/en/v2/getting-started/welcome)。
我建议阅读有关 [IDA Domain API](https://ida-domain.docs.hex-rays.com/) 的内容,以便您了解其用途以及它如何融入您的项目中。
## 功能
目前所有的 MCPs tools 均不会修改数据库。
支持的操作:
* 数据库的打开、关闭以及显示元数据
* 列出所有 segments
* 列出所有字符串
* 读取 bytes
* 所有的 Xrefs 调用/读取/写入
* 反汇编单个/范围
* 反编译为伪代码
* 列出数据库中的所有类型
* 列出函数中的局部变量
* 设置函数定义(更改返回值、参数类型和名称)
## 注意事项
* 您**必须**设置 `IDADIR` 环境变量。这是 IDA domain API 的必要要求。
* 根据 AI agent 的沙盒化方式,您可能需要为用户设置 IDAUSR 环境变量。这是因为 domain API 会尝试写入 `~/.idapro/ida.reg`。如果您的沙盒不允许写入,这将失败。
* 此外,您必须确保包含 .i64 数据库的目录具有可读和**可写**权限。
您需要添加一个 MCP server:
使用 OpenAI codex 的示例:
打开 ~/.codex/config.toml ``` [mcp_servers.ida_domain_mcp] command = "python3" args = ["ida_domain_mcp.py"] [mcp_servers.dwu_ida_domain.env] IDADIR = "/home/mike/ida-pro-9.1" IDAUSR = "/tmp/idauser" ```
使用 OpenAI codex 的示例:
打开 ~/.codex/config.toml ``` [mcp_servers.ida_domain_mcp] command = "python3" args = ["ida_domain_mcp.py"] [mcp_servers.dwu_ida_domain.env] IDADIR = "/home/mike/ida-pro-9.1" IDAUSR = "/tmp/idauser" ```
标签:AI代理, IDA Pro, MCP, 云资产清单, 自动化分析, 跨站脚本, 逆向工具, 逆向工程