dfgdg333/ctxdbgmcp

GitHub: dfgdg333/ctxdbgmcp

将 WinDbg、IDA Pro 和 x64dbg 统一接入 AI 助手的逆向工程任务控制中心,提供跨调试器自动化分析能力。

Stars: 0 | Forks: 0

ctxmcpdbg — mission control for reverse engineering

逆向工程任务控制中心
单一 stdio 接口 · 160+ 工具 · 三个调试器,一个任务控制中心。

status python platform mcp license

快速开始 · 架构 · 服务器 · 工作流 · 报告问题

## ▎ 概述 **ctxmcpdbg** 是一个 MCP 服务器平台,它将 **WinDbg**、**IDA Pro 9.x** 和 **x64dbg** 连接到 AI 编程助手,用于逆向工程和 Windows 安全研究。 单一 stdio 接口。**160+ 工具。** 三个调试器,一个任务控制中心。 ## ▎ 演示

ctxmcpdbg demo — crash dump to root cause in one round trip

一个 prompt → WinDbg 打开 dump 文件,分析崩溃,跳转到 IDA,并返回故障源码 — 根本原因定位约需 1.8 秒。

## ▎ 启动序列 ### `T-2` — 环境要求 - **Python** 3.11+ - **操作系统** Windows 10 / 11 - **至少一个调试器** — WinDbg (Windows SDK) · IDA Pro 9.x · x64dbg ### `T-1` — 安装 ``` git clone https://github.com/YOUR_USERNAME/ctxmcpdbg.git cd ctxmcpdbg pip install -e . ``` ### `T-0` — 注册服务器 独立服务器: ``` claude mcp add windbg -- python windbg_mcp.py claude mcp add ida -- python ida_mcp.py claude mcp add x64dbg -- python -m agent --mcp claude mcp add mco -- python mco_orchestrator.py claude mcp add mco-sessions -- python mco_sessions.py ``` 或使用统一网关 — 一个服务器,包含所有工具: ``` claude mcp add mco-gateway -- python mco_gateway.py ``` 有关包含环境变量的完整 JSON 配置,请参见 `mcp_config_example.json`。 ### `LIFTOFF` — 测试 注册服务器后,询问你的 AI 客户端: ``` Open C:\dumps\crash.dmp, run a full crash analysis, and decompile the function at the fault address. ``` MCO 会自动链式执行 `windbg_open_dump` → `windbg_analyze_crash` → `mco_pivot_to_ida` 并返回带有调用者链的伪代码。 ## ▎ 功能 | 功能 | 作用 | |---|---| | **实时调试器控制** | 通过 x64dbg 运行、暂停、步进并检查活动进程。在整个 API 组(`memory`、`network`、`crypto`、`bossix`)上设置断点,而不是一次只能设置一个地址。 | | **跨调试器跳转** | 从 WinDbg 崩溃 dump 中获取地址,并通过一次工具调用直接跳转到 IDA Pro 的反编译代码、调用者和被调用者。 | | **自主分析代理** | x64dbg 服务器附带了一个可选的 ReAct 推理代理(`agent_analyze`),它可以规划并执行多步骤目标 — *“查找脱壳循环”*、*“识别反调试检查”* — 自主链式调用工具。支持 Claude、Groq、本地 Ollama 或仅使用启发式算法。 | | **持久化记忆** | 代理会记住加壳特征、反调试模式以及过往会话的洞察,并在分析新目标时自动调用这些记忆。 | | **会话录制** | 每次工具调用都可以记录到带有全文搜索 (FTS5) 的 SQLite 中。重放时间线、对比两次会话或导出完整的 Markdown 报告。 | | **反调试检测与绕过** | 将静态扫描(IDA 导入/模式)+ 动态扫描(x64dbg PEB/RDTSC)整合到一份报告中,并附带自动 PEB 修补和指令级绕过补丁。 | ## ▎ 架构

System architecture — one MCP connection fans out to three debuggers, an orchestrator, and a session layer

- **传输** — stdio JSON-RPC (MCP `2024-11-05` 规范) - **IDA 通信** — HTTP REST 连接到 `localhost:2022`,从 6 个候选位置自动发现 endpoint - **x64dbg 通信** — 通过命名管道进行二进制帧传输(`X64A` 魔数 + uint32 长度 + 8 字节填充 + JSON) - **代理推理** — 具备可插拔 LLM 后端(Claude、Groq、OpenRouter、本地 Ollama 或仅启发式算法)的 ReAct 循环 - **会话** — 带有 FTS5 全文搜索、WAL 模式、线程安全的 SQLite - **网关** — 将子服务器作为子进程生成,通过单个 stdio 连接代理所有工具调用 ## ▎ 阵列 — 服务器 | 服务器 | 文件 | 作用 | 工具数 | |---|---|---|:--:| | `windbg` | `windbg_mcp.py` | 崩溃 dump、堆分析、影子栈、内核调试 | 70+ | | `ida` | `ida_mcp.py` | 反编译、交叉引用、类型恢复、二进制修补 | 32+ | | `x64dbg` | `agent/` | 动态分析、ReAct 代理、反调试绕过、内存修补 | 38+ | | `mco` | `mco_orchestrator.py` | 跨调试器复合工作流 | 7 | | `mco-sessions` | `mco_sessions.py` | 会话录制、FTS 搜索、Markdown 导出 | 13 | | `mco-gateway` | `mco_gateway.py` | 统一代理 — 通过单个连接提供所有服务器 | 全部 | ## ▎ 基础配置 — 调试器
WinDbg 需要 Windows SDK 中的 `cdb.exe`。默认路径: ``` C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe ``` 如果你的路径不同,请设置 `WINDBG_MCP_CDB`。无需预先启动 — 工具会按需打开 dump 或附加进程。
IDA Pro 9.x 1. 打开 IDA Pro 9.x 并加载二进制文件。 2. 在 Python 控制台中,运行: exec(open(r'path\to\mco\ida_server_plugin.py').read()) 3. HTTP 服务器将在端口 `2022` 上启动。
x64dbg 1. 构建 C++ 插件: cd agent\plugins build_plugin.bat 2. 将 `mco_agent.dp64` 复制到 x64dbg 的插件目录中。 3. 重启 x64dbg — 该插件将暴露命名管道 `\\.\pipe\x64dbg_ai_agent`。
## ▎ 核心工作流 **崩溃 → 源代码(单条命令)** ``` mco_crash_to_source(dump_path="C:\\dumps\\crash.dmp") ``` 打开 dump,运行 `!analyze -v`,提取故障地址,在 IDA 中反编译崩溃函数,并返回带有调用者的伪代码。 **反调试检测与绕过** ``` mco_bossix_report() bossix_hide() # PEB patch bossix_patch(address) # NOP / flip JCC at check ``` **将任意地址跳转至伪代码** ``` mco_pivot_to_ida(address="0x7FF712340000") ``` **自主的、目标驱动的分析** ``` agent_analyze(goal="Find the unpacking loop and identify the OEP") ``` 代理会规划一系列工具调用,执行它们,并报告结果 — 无论是否带有 LLM 后端均可工作。 **会话录制** ``` session_start(name="chrome uaf analysis") # ... 执行工作 ... session_end(notes="UAF at CRenderObject::Destroy") session_export_markdown(session_id=1) ``` ## ▎ x64dbg 服务器模式 | 模式 | 命令 | |---|---| | 仅工具(默认) | `python -m agent --mcp` | | Claude 推理 | `python -m agent --mcp --llm claude --api-key sk-...` | | 本地 Ollama | `python -m agent --mcp --llm local --llm-model deepseek-r1` | | Groq(免费层级) | `python -m agent --mcp --llm groq` | | OpenRouter | `python -m agent --mcp --llm openrouter` | | 交互式 CLI | `python -m agent --cli` | ## ▎ 环境变量 | 变量 | 服务器 | 用途 | |---|---|---| | `WINDBG_MCP_CDB` | windbg | `cdb.exe` 的路径 | | `IDA_MCP_HOST` | ida | IDA HTTP 主机(默认:`localhost`) | | `IDA_MCP_PORT` | ida | IDA HTTP 端口(默认:`2022`) | | `X64DBG_PATH` | x64dbg | `x64dbg.exe` 的路径 | | `X64DBG_PIPE` | x64dbg | 命名管道路径 | | `ANTHROPIC_API_KEY` | x64dbg | 仅在使用 `--llm claude` 时需要 | | `GROQ_API_KEY` | x64dbg | 仅在使用 `--llm groq` 时需要 | | `MCO_SESSIONS_DB` | sessions | SQLite 数据库路径 | | `MCO_SERVERS` | gateway | 要启用的服务器子集(以逗号分隔) | ## ▎ 项目结构 ``` mco/ ├── windbg_mcp.py # WinDbg MCP server (production, 3000+ lines) ├── ida_mcp.py # IDA Pro MCP server ├── ida_server_plugin.py # IDA Python plugin (starts HTTP server) ├── mco_orchestrator.py # Cross-debugger meta-tools ├── mco_sessions.py # Session recording (SQLite + FTS5) ├── mco_gateway.py # Unified gateway proxy ├── agent/ │ ├── __main__.py # x64dbg MCP entry point + LLM backend selection │ ├── core.py # ReAct agent (Observe → Think → Act) │ ├── memory.py # Persistent memory store (~/.x64ai/) │ ├── bridge.py # Named-pipe IPC to x64dbg plugin │ ├── mcp_server.py # Tool definitions (38+) │ ├── skills/ # Modular skill implementations │ └── plugins/ │ ├── x64dbg_plugin.cpp │ └── build_plugin.bat ├── mcp_config_example.json # Ready-to-use MCP client config └── pyproject.toml ``` ## ▎ 开发 ``` git clone https://github.com/YOUR_USERNAME/ctxmcpdbg.git cd ctxmcpdbg pip install -e ".[dev]" pytest ``` ## ▎ 许可证 **MIT** — 详见 [`LICENSE`](LICENSE)。

三个调试器。一个任务控制中心。准备启动。 🔥

标签:AI风险缓解, DAST, IDA Pro, MCP, WinDbg, 云资产清单, 恶意软件分析, 逆向工具, 逆向工程