
Plataforma de engenharia reversa alimentada por MCP que conecta WinDbg, IDA Pro e x64dbg a 160+ ferramentas de depuração e análise acessíveis por IA.
CONTROLE DE MISSÃO PARA ENGENHARIA REVERSA
Uma interface stdio · 160+ ferramentas · Três depuradores, um controle de missão.
Início Rápido · Arquitetura · Servidores · Fluxos de Trabalho · Reportar um Problema
Site · ctxdebug.xyz · Contato · [email protected] · Status · Alfa público
Feito para engenharia reversa autorizada, depuração e pesquisa de segurança.
ctxdebug é uma plataforma de servidores MCP que conecta WinDbg, IDA Pro 9.x e x64dbg a assistentes de codificação de IA para engenharia reversa e pesquisa de segurança no Windows.
Uma interface stdio. 160+ ferramentas. Três depuradores, um controle de missão.
A ideia. O MCO transforma seus depuradores em servidores de ferramentas MCP (Model Context Protocol). Você conversa com Claude, Kiro ou qualquer cliente compatível com MCP — e ele conversa com seus depuradores. Sem copiar e colar a saída. Sem alternar entre janelas. Sem correlação manual de dados entre ferramentas.
Uma única ida e volta. Você diz "analise este dump de crash e encontre a causa raiz." O MCO abre o dump no WinDbg, executa
!analyze -v, extrai o endereço da falha, alterna para o IDA Pro para descompilar a função que causou o crash e retorna um relatório combinado com pseudocódigo e cadeia de chamadores.
Um prompt → WinDbg abre o dump, analisa o crash, alterna para o IDA e retorna a origem da falha — causa raiz em ~1,8s.
T-2 — Pré-requisitosT-1 — Instalaçãogit clone https://github.com/DdUdle/ctxdebug.git
cd ctxdebug
pip install -e .
T-0 — Registrar servidoresServidores individuais:
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
Ou use o gateway unificado — um servidor, todas as ferramentas:
claude mcp add mco-gateway -- python mco_gateway.py
Consulte mcp_config_example.json para obter a configuração JSON completa com variáveis de ambiente.
LIFTOFF — TesteDepois que um servidor for registrado, peça ao seu cliente de IA:
Open C:\dumps\crash.dmp, run a full crash analysis,
and decompile the function at the fault address.
O MCO encadeia windbg_open_dump → windbg_analyze_crash → mco_pivot_to_ida automaticamente e retorna pseudocódigo com a cadeia de chamadores.
2024-11-05)localhost:2022, descobre automaticamente o endpoint entre 6 candidatosX64A + comprimento uint32 + padding de 8 bytes + JSON)Requer cdb.exe do Windows SDK. Caminho padrão:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe
Defina WINDBG_MCP_CDB se o seu caminho for diferente. Não é necessário pré-iniciar — as ferramentas abrem dumps ou anexam sob demanda.
Abra o IDA Pro 9.x com um binário carregado.
No console Python, execute:
exec(open(r'path\to\mco\ida_server_plugin.py').read())
O servidor HTTP inicia na porta 2022.
Compile o plugin C++:
cd agent\plugins
build_plugin.bat
Copie mco_agent.dp64 para o diretório de plugins do x64dbg.
Reinicie o x64dbg — o plugin expõe o named pipe \\.\pipe\x64dbg_ai_agent.
Crash → código-fonte (um único comando)
mco_crash_to_source(dump_path="C:\\dumps\\crash.dmp")
Abre o dump, executa !analyze -v, extrai o endereço da falha, descompila a função que causou o crash no IDA e retorna pseudocódigo com os chamadores.
Detecção e bypass de anti-debug
mco_bossix_report()
bossix_hide() # PEB patch
bossix_patch(address) # NOP / flip JCC at check
Converta qualquer endereço em pseudocódigo
mco_pivot_to_ida(address="0x7FF712340000")
Análise autônoma orientada a objetivos
agent_analyze(goal="Find the unpacking loop and identify the OEP")
O agente planeja uma sequência de chamadas de ferramentas, as executa e relata as descobertas — com ou sem um backend LLM.
Gravação de sessões
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
Contribuições são bem-vindas. Por favor, abra uma issue antes de iniciar mudanças grandes para que a abordagem possa ser discutida primeiro.
MIT — consulte LICENSE.
Três depuradores. Um controle de missão. Prontos para o lançamento. 🔥
| Recurso | O que faz |
|---|
| Controle de depurador em tempo real | Executar, pausar, avançar passo a passo e inspecionar um processo ativo por meio do x64dbg. Defina breakpoints em grupos inteiros de APIs (memory, network, crypto, bossix) em vez de um endereço por vez. |
| Alternância entre depuradores | Pegue um endereço de um dump de crash do WinDbg e vá direto para a descompilação no IDA Pro, chamadores e chamados com uma única chamada de ferramenta. |
| Agente de análise autônomo | O servidor x64dbg inclui um agente de raciocínio ReAct opcional (agent_analyze) que planeja e executa metas de múltiplas etapas — "encontre o loop de desempacotamento", "identifique verificações anti-debug" — encadeando chamadas de ferramentas por conta própria. Funciona com Claude, Groq, Ollama local ou apenas heurísticas. |
| Memória persistente | O agente lembra de assinaturas de packers, padrões anti-debug e insights de sessões anteriores, e os recupera automaticamente em novos alvos. |
| Gravação de sessões | Cada chamada de ferramenta pode ser registrada em SQLite com busca em texto completo (FTS5). Reproduza uma linha do tempo, compare duas sessões ou exporte um relatório Markdown completo. |
| Detecção e bypass de anti-debug | Varredura estática (imports/padrões do IDA) + varredura dinâmica (PEB/RDTSC do x64dbg) combinadas em um único relatório, com patch automático de PEB e patches de bypass em nível de instrução. |
| Servidor | Arquivo | O que faz | Ferramentas |
|---|
windbg | windbg_mcp.py | Dumps de crash, análise de heap, shadow stack, depuração de kernel | 70+ |
ida | ida_mcp.py | Descompilação, xrefs, recuperação de tipos, patch binário | 32+ |
x64dbg | agent/ | Análise dinâmica, agente ReAct, bypass de anti-debug, patch de memória | 38+ |
mco | mco_orchestrator.py | Fluxos de trabalho compostos entre depuradores | 7 |
mco-sessions | mco_sessions.py | Gravação de sessões, busca FTS, exportação Markdown | 13 |
mco-gateway | mco_gateway.py | Proxy unificado — todos os servidores por meio de uma conexão | todas |
| Modo | Comando |
|---|
| Apenas ferramentas (padrão) | python -m agent --mcp |
| Raciocínio com Claude | python -m agent --mcp --llm claude --api-key sk-... |
| Ollama local | python -m agent --mcp --llm local --llm-model deepseek-r1 |
| Groq (nível gratuito) | python -m agent --mcp --llm groq |
| OpenRouter | python -m agent --mcp --llm openrouter |
| CLI interativo | python -m agent --cli |
| Variável | Servidor | Finalidade |
|---|
WINDBG_MCP_CDB | windbg | Caminho para cdb.exe |
IDA_MCP_HOST | ida | Host HTTP do IDA (padrão: localhost) |
IDA_MCP_PORT | ida | Porta HTTP do IDA (padrão: 2022) |
X64DBG_PATH | x64dbg | Caminho para x64dbg.exe |
X64DBG_PIPE | x64dbg | Caminho do named pipe |
ANTHROPIC_API_KEY | x64dbg | Necessária apenas com --llm claude |
GROQ_API_KEY | x64dbg | Necessária apenas com --llm groq |
MCO_SESSIONS_DB | sessions | Caminho do banco de dados SQLite |
MCO_SERVERS | gateway | Subconjunto separado por vírgulas de servidores a ativar |