lowcort1sol/ida-x64dbg-mcp

GitHub: lowcort1sol/ida-x64dbg-mcp

一个通过 MCP 协议将 IDA Pro 静态分析与 x64dbg 动态调试桥接到 AI 代理的逆向工程编排平台,实现跨工具实时同步与协同工作流。

Stars: 1 | Forks: 0

# IX64MCP **用于 AI 辅助逆向工程的 IDA + x64dbg MCP。** IX64MCP 将诸如 Codex 之类的 AI 代理连接到实时的逆向工程工作区:使用 IDA Pro 进行静态分析,使用 x64dbg 进行动态分析,并通过一个本地 MCP 守护进程将地址、断点、注释、追踪、笔记、补丁计划和报告统一保留在同一个会话中。 这是一个 **alpha 研究/开发者工具**,而不是成熟的商业产品。当前的目标是使 AI 辅助逆向变得实用、可观察且默认安全。 ## 为什么会有这个项目 大多数逆向工程集成一次只公开一个工具:一个 IDA 助手,一个调试器助手,或者一个转储上下文的脚本。IX64MCP 围绕一个更强的理念构建: 这意味着代理可以回答如下问题: - “解释调试器停止位置的函数。” - “查找可能的密码检查。” - “在入口处中断并将运行时地址映射回 IDA。” - “总结调用、字符串、导入、分支和伪代码。” - “在断点处读取寄存器和栈。” - “创建重命名/注释建议,而不是静默修改数据库。” - “根据时间线、分类、IoC 和补丁候选生成紧凑的恶意软件分析报告。” ## 架构 ![IX64MCP 架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ee2e38519f102438.png) IX64MCP 有意采用本地优先的设计: - Codex 通过 stdio 与轻量级 MCP 适配器通信。 - 适配器将工具/资源代理到 IX64MCP 守护进程。 - IDA 和 x64dbg 通过 `127.0.0.1` WebSocket 桥接连接到守护进程。 - 守护进程拥有会话状态、映射、策略门控、时间线摘要和持久化存储。 - SQLite + JSONL 保存会话、事件、建议、映射、断点、补丁报告和工作区元数据。 ## 当前状态 IX64MCP 是一个 **严谨的 alpha 原型**。 目前可用的功能: - MCP 守护进程 + 轻量级 Codex 适配器分离。 - 适用于 IDA Pro 9.1 的 IDAPython 桥接。 - x64dbg x64 C++ 插件桥接。 - 实时当前地址同步和运行时/静态映射。 - 断点、单步执行、寄存器读取、内存读取、内存映射、调用栈、线程、异常。 - IDA 函数、xrefs、字符串、伪代码块、callgraph/CFG 辅助工具、注释、重命名建议。 - 时间线、摘要、语义缓存、上下文预算配置。 - 安全的补丁规划和带门控的文件修补,支持备份/diff/回滚。 - 恶意软件样本工作区、分类、IoC、配置、谱系、行为报告、JSON/Markdown/HTML 导出。 - 有界的运行时工作流,例如 `workflow.analyze_function_runtime`。 - 涵盖服务器行为、同步边缘情况、策略、持久化、安装范围和工作流编排的 100 个自动化测试。 已知的 alpha 阶段限制: - 以 Windows 优先。 - 以 x64dbg x64 优先;尚不支持 x32。 - 该项目面向单一实时会话。 - IDA/x64dbg 桥接必须手动或通过辅助脚本安装。 - 普通用户应从 GitHub Releases 下载 x64dbg 插件二进制文件。 - 协议/模式加固仍在路线图中。 ## 快速安装 ### 前置条件 - Windows 10/11 x64 - Python 3.14+ 或 `uv` - 带有 IDAPython 的 IDA Pro 9.1 - x64dbg x64 - 支持 MCP 配置的 Codex 桌面端/CLI - 最新 GitHub Release 中的 `ix64mcp.dp64` ### 1. 克隆 ``` git clone https://github.com/lowcort1sol/ida-x64dbg-mcp.git cd ida-x64dbg-mcp ``` ### 2. 下载 x64dbg 插件 从最新的 GitHub Release 下载 `ix64mcp.dp64`。 普通用户应使用 Release 二进制文件。在本地构建 x64dbg 插件属于开发者路线。 ### 3. 运行安装程序 ``` .\scripts\install.ps1 ` -IdaPluginsDir "C:\Path\To\IDA Pro 9.1\plugins" ` -X64DbgPluginsDir "C:\Path\To\x64dbg\release\x64\plugins" ` -X64DbgPluginBinary "C:\Path\To\ix64mcp.dp64" ``` 最小化的仅服务器设置: ``` .\scripts\install.ps1 ``` 安装程序: - 创建或复用 `.venv`; - 将 `ix64mcp` 安装到虚拟环境中; - 创建 `state/` 和 `state/logs/`; - 可选地复制 IDA 插件; - 可选地复制 x64dbg 插件; - 打印可即贴的 Codex MCP 配置。 它**不会**自动编辑你的 Codex 配置。 ### 4. 配置 Codex 安装程序会打印如下代码片段: ``` [mcp_servers.ix64mcp] command = "C:\\path\\to\\IX64MCP\\.venv\\Scripts\\python.exe" args = ["-m", "ix64mcp.server", "mcp"] ``` 将其粘贴到你的 Codex MCP 配置中,然后重启或刷新 Codex。 ### 5. 启动并验证 ``` .\.venv\Scripts\python -m ix64mcp.server start .\scripts\doctor.ps1 ``` 打开 IDA 和 x64dbg 后,`doctor` 应报告: ``` daemon_health.ok = true connected.ida = true connected.x64dbg = true ``` ## 你可以做什么 ### 通过 IDA 进行静态分析 代理可以向 IDA 请求: - 函数边界和块; - xrefs; - 字符串和字符串 xrefs; - 紧凑的函数摘要; - 伪代码块; - callgraph 和 CFG 切片; - 调用者和被调用者; - 导入到调用者和字符串到函数的流程; - 分支上下文和栈变量使用情况; - 安全的重命名/注释/反编译注释建议。 有用的调用: ``` ida.function_summary ida.pseudocode ida.callgraph ida.cfg ida.string_to_functions analysis.suggest_name analysis.suggest_comment analysis.apply_suggestion ``` ### 通过 x64dbg 进行动态分析 代理可以向 x64dbg 请求: - 当前寄存器; - 内存读取; - 内存映射; - 线程; - 调用栈; - 异常; - 软件/硬件/内存/条件断点; - 断点快照; - 安全的转储元数据; - 紧凑的追踪配方事件。 有用的调用: ``` x64dbg.read_registers x64dbg.read_memory x64dbg.memory_map x64dbg.call_stack x64dbg.breakpoint_snapshot x64dbg.run_until_breakpoint trace.recipe_enable ``` ### 代理工作流 高级工作流结合了多个低级工具: ``` workflow.follow_debugger workflow.explain_current_function workflow.find_password_check workflow.break_on_first_strcmp_like workflow.rename_functions_from_trace workflow.make_patch_plan workflow.generate_analysis_report workflow.analyze_function_runtime ``` 示例:`workflow.analyze_function_runtime` 将 IDA EA 映射到运行时,设置断点,在要求的超时时间内运行,等待精确命中,收集寄存器/栈/内存/调用栈,写入 IDA 注释,并返回一份紧凑的报告。 ### 补丁/Crackme 辅助 IX64MCP 支持预览优先的补丁工作: - `patch.plan` 扫描比较/JCC 和成功/失败字符串模式。 - `patch.apply_file` 受策略门控。 - 被修补的文件会进行备份和哈希记录。 - `patch.diff` 报告字节级的差异。 - `patch.rollback` 从备份还原。 内存修补默认故意未启用。 ### 恶意软件分析工作区 恶意软件工作区将案例数据集中管理: - 样本副本和哈希; - IDB/调试器路径; - 沙箱元数据; - 笔记; - IoC; - 提取的配置; - 产物; - 谱系; - 标签/状态; - 行为报告; - JSON/Markdown/HTML 导出。 有用的调用: ``` malware.workspace_create malware.triage malware.add_ioc malware.add_config malware.add_artifact malware.add_lineage malware.behavior_report malware.export_report ``` ## 上下文预算 逆向工程可能会为 AI 上下文窗口生成过多的数据。IX64MCP 避免默认转储所有内容。 它提供: - `quick`、`compact`、`deep` 和 `forensic` 响应配置; - 有上限的时间线摘要; - 语义缓存; - 紧凑的报告资源; - 伪代码分块; - 有上限的追踪批次。 有用的资源: ``` analysis://current analysis://modules analysis://functions/hot analysis://patches analysis://report analysis://runtime-history analysis://correlation malware://workspace malware://behavior-report ``` ## 安全模型 默认模式是 `analysis-safe`。 默认允许的操作: - 导航; - 读取; - 注释; - 命名; - 断点; - 单步执行; - 有界的运行时工作流; - 补丁规划; - 安全的转储元数据。 默认受门控或阻止的操作: - 内存修补; - 原始进程内存转储; - 文件补丁应用; - 长时间自主运行循环; - 危险的恶意软件自动化。 每一个更改操作都会记录到时间线中。 可选的桥接 token: ``` $env:IX64MCP_TOKEN = "change-me-local-secret" ``` 如果你需要本地主机桥接身份验证,请在启动守护进程、IDA 和 x64dbg 之前设置相同的 token。 ## 服务器命令 ``` .\.venv\Scripts\python -m ix64mcp.server start .\.venv\Scripts\python -m ix64mcp.server stop .\.venv\Scripts\python -m ix64mcp.server status .\.venv\Scripts\python -m ix64mcp.server doctor .\.venv\Scripts\python -m ix64mcp.server mcp ``` 进程模型: - `start` / `daemon`:拥有桥接端口 `127.0.0.1:8765` 和守护进程 API `127.0.0.1:8766`; - `mcp`:轻量级 Codex 适配器,不绑定桥接端口; - `legacy`:旧版组合 stdio+桥接模式,仅用于调试。 默认日志: ``` state/logs/daemon.log state/logs/mcp.log ``` ## 故障排除 ### Codex 列出了工具,但工具调用失败 运行: ``` .\scripts\doctor.ps1 ``` 如果守护进程关闭: ``` .\.venv\Scripts\python -m ix64mcp.server start ``` ### 过时或部分的服务器 ``` .\.venv\Scripts\python -m ix64mcp.server stop --force .\.venv\Scripts\python -m ix64mcp.server start ``` ### IDA 已断开连接 - 验证 `ix64mcp_ida.py` 是否位于 IDA `plugins` 目录中。 - 复制插件后重新启动 IDA。 - 确保守护进程已在运行。 ### x64dbg 已断开连接 - 验证 `ix64mcp.dp64` 是否位于 `x64dbg\release\x64\plugins` 中。 - 复制插件后重新启动 x64dbg。 - 确保守护进程已在运行。 ### IDAPython 未加载 IDA 可能需要配置 Python 运行时。运行 IDA 的 `idapyswitch` 并选择兼容的 Python 安装。 ## 开发者设置 安装开发依赖项: ``` uv python install 3.14.4 uv venv --python 3.14.4 .venv uv pip install --python .\.venv\Scripts\python.exe -e ".[dev]" ``` 运行测试: ``` .\.venv\Scripts\python -m pytest .\.venv\Scripts\python -m compileall ix64mcp bridges tests ``` 从源代码构建 x64dbg 桥接: ``` .\scripts\build-x64dbg-plugin.ps1 ``` 在没有 IDA/x64dbg 的情况下运行本地桥接模拟器: ``` .\.venv\Scripts\python -m ix64mcp.harness --role ida .\.venv\Scripts\python -m ix64mcp.harness --role x64dbg ``` 运行 x64dbg 冒烟测试: ``` .\.venv\Scripts\python -m ix64mcp.smoke_x64dbg --kill --timeout 30 --event-timeout 10 ``` ## 样本 `samples/` 树包含用于测试工作流的小型良性二进制文件: - `crackme_simple`:密码检查练习目标; - `anti_debug_demo`:调试器检测示例; - `control_flow_lab`:重分支控制流练习目标。 使用以下命令构建它们: ``` cmake -S samples -B build/samples -G Ninja cmake --build build/samples ``` ## 仓库布局 ``` ix64mcp/ Python daemon, MCP adapter, workflows, policy, storage bridges/ida/ IDAPython bridge plugin bridges/x64dbg/ x64dbg C++ bridge plugin source scripts/ installation, doctor, and build helpers samples/ benign test binaries tests/ automated regression and hardening tests docs/assets/ README images and public assets pluginsdk/ x64dbg plugin SDK headers/libs ``` ## GitHub Alpha 阶段说明 该项目有意处于公开 alpha 阶段: - API 可能会发生更改。 - 协议加固正在进行中。 - 长时间的恶意软件会话需要更多的实际测试。 - 贡献应优先考虑可靠性、会话正确性、协议模式和演示打磨,而不是添加许多新工具。 高层方向是稳定的:**一个本地 MCP 平台,AI 代理可以在其中协调 IDA、x64dbg、时间线、补丁规划和恶意软件分析报告,而不会淹没在原始上下文中。**
标签:AI辅助分析, DAST, DNS 反向解析, IDA Pro, IP 地址批量处理, MCP协议, Wayback Machine, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 动态防御, 反汇编, 大语言模型代理, 威胁情报, 实时同步, 开发者工具, 恶意软件分析, 情报收集, 插件, 搜索语句(dork), 无线安全, 时序数据库, 漏洞研究, 自动化分析, 跨站脚本, 逆向工具, 逆向工程, 静态分析