
MCP-платформа для реверс-инжиниринга, объединяющая WinDbg, IDA Pro и x64dbg с 160+ инструментами отладки и анализа, доступными для ИИ.
ЦЕНТР УПРАВЛЕНИЯ ДЛЯ РЕВЕРС-ИНЖИНИРИНГА
Один stdio-интерфейс · 160+ инструментов · Три отладчика, один центр управления.
Быстрый старт · Архитектура · Серверы · Рабочие процессы · Сообщить о проблеме
Сайт · ctxdebug.xyz · Контакты · [email protected] · Статус · Публичная альфа
Создан для авторизованного реверс-инжиниринга, отладки и исследований в области безопасности.
ctxdebug — это MCP-серверная платформа, которая подключает WinDbg, IDA Pro 9.x и x64dbg к AI-ассистентам для написания кода для реверс-инжиниринга и исследования безопасности Windows.
Один stdio-интерфейс. 160+ инструментов. Три отладчика, один центр управления.
Идея. MCO превращает ваши отладчики в серверы инструментов MCP (Model Context Protocol). Вы общаетесь с Claude, Kiro или любым MCP-совместимым клиентом — а он общается с вашими отладчиками. Никакого копирования вывода. Никакого переключения окон. Никакой ручной сверки данных между инструментами.
Один цикл запроса. Вы говорите: «Проанализируй этот дамп краха и найди первопричину». MCO открывает дамп в WinDbg, выполняет
!analyze -v, извлекает адрес сбоя, переключается на IDA Pro для декомпиляции аварийной функции и возвращает объединённый отчёт с псевдокодом и цепочкой вызовов.
Один запрос → WinDbg открывает дамп, анализирует крах, переключается на IDA и возвращает источник сбоя — первопричина за ~1,8 с.
T-2 — ТребованияT-1 — Установкаgit clone https://github.com/DdUdle/ctxdebug.git
cd ctxdebug
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 и возвращает псевдокод с цепочкой вызовов.
2024-11-05)localhost:2022, автоматическое обнаружение конечной точки из 6 кандидатовX64A + длина uint32 + 8-байтовое заполнение + JSON)Требуется cdb.exe из Windows SDK. Путь по умолчанию:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe
Установите WINDBG_MCP_CDB, если ваш путь отличается. Предварительный запуск не нужен — инструменты открывают дампы или подключаются по требованию.
Откройте IDA Pro 9.x с загруженным бинарником.
В консоли Python выполните:
exec(open(r'path\to\mco\ida_server_plugin.py').read())
HTTP-сервер запускается на порту 2022.
Соберите C++-плагин:
cd agent\plugins
build_plugin.bat
Скопируйте mco_agent.dp64 в каталог плагинов x64dbg.
Перезапустите x64dbg — плагин предоставляет именованный канал \\.\pipe\x64dbg_ai_agent.
Крах → исходный код (одна команда)
mco_crash_to_source(dump_path="C:\\dumps\\crash.dmp")
Открывает дамп, выполняет !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")
# ... do your work ...
session_end(notes="UAF at CRenderObject::Destroy")
session_export_markdown(session_id=1)
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/DdUdle/ctxdebug.git
cd ctxdebug
pip install -e ".[dev]"
pytest
Вклад приветствуется. Пожалуйста, откройте issue перед началом крупных изменений, чтобы сначала можно было обсудить подход.
MIT — см. LICENSE.
Три отладчика. Один центр управления. Запуск разрешён. 🔥
| Возможность | Что делает |
|---|
| Управление отладчиком в реальном времени | Запуск, пауза, пошаговое выполнение и проверка живого процесса через x64dbg. Установка точек останова на целые группы API (memory, network, crypto, bossix) вместо одного адреса за раз. |
| Переключение между отладчиками | Возьмите адрес из дампа краха WinDbg и переходите сразу к декомпиляции в IDA Pro, вызывающим и вызываемым функциям одним вызовом инструмента. |
| Автономный агент анализа | Сервер x64dbg включает опционального агента рассуждений ReAct (agent_analyze), который планирует и выполняет многошаговые цели — «найти цикл распаковки», «определить антиотладочные проверки» — самостоятельно связывая вызовы инструментов. Работает с Claude, Groq, локальным Ollama или только на эвристиках. |
| Постоянная память | Агент запоминает сигнатуры упаковщиков, антиотладочные паттерны и выводы прошлых сессий и автоматически вспоминает их на новых целях. |
| Запись сессий | Каждый вызов инструмента может записываться в SQLite с полнотекстовым поиском (FTS5). Воспроизведите таймлайн, сравните две сессии или экспортируйте полный отчёт в Markdown. |
| Обнаружение и обход антиотладки | Статическое сканирование (импорты/паттерны IDA) + динамическое сканирование (PEB/RDTSC в x64dbg) объединяются в один отчёт, с автоматическим патчингом PEB и патчами обхода на уровне инструкций. |
| Сервер | Файл | Что делает | Инструменты |
|---|
windbg | windbg_mcp.py | Дампы краха, анализ кучи, теневой стек, отладка ядра | 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 | Единый прокси — все серверы через одно подключение | all |
| Режим | Команда |
|---|
| Только инструменты (по умолчанию) | 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 | HTTP-хост IDA (по умолчанию: localhost) |
IDA_MCP_PORT | ida | HTTP-порт IDA (по умолчанию: 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 | Подмножество серверов для включения через запятую |