
MCPを活用したリバースエンジニアリングプラットフォーム。WinDbg、IDA Pro、x64dbgを接続し、160以上のAI対応デバッグ・解析ツールを備えています。
WinDbg、IDA Pro、x64dbg 向け MCP サーバー
単一の stdio インターフェース · 160 以上のツール · 3 つのデバッガ、1 つのクライアント。
クイックスタート · アーキテクチャ · サーバー · ワークフロー · 問題を報告
ウェブサイト · ctxdebug.xyz · お問い合わせ · [email protected] · ステータス · パブリックアルファ
自身が所有する、または解析許可を得たシステムに対する、認可されたリバースエンジニアリング、クラッシュ解析、セキュリティリサーチ向けです。
ctxdebug は、WinDbg、IDA Pro 9.x、x64dbg を AI コーディングアシスタントに接続する MCP(Model Context Protocol)プラットフォームです。クラッシュダンプ解析、IDA での静的レビュー、x64dbg でのライブデバッグに利用できます — ウィンドウ間で出力をコピーする必要はありません。
単一の stdio インターフェース。160 以上のツール。 3 つのデバッガ、1 つのクライアント。
仕組み。 各デバッガは MCP ツールサーバーとして公開されます。Claude、Kiro、または任意の MCP 互換クライアントと対話し、クライアントがデバッガを呼び出します。コピー&ペーストも、ツール間の手動での関連付けも不要です。
例。 「このクラッシュダンプを解析して根本原因を見つけて」 と尋ねると、ctxdebug は WinDbg でダンプを開き、
!analyze -vを実行し、フォールトアドレスを取得して IDA Pro でその関数を逆コンパイルし、擬似コードとコールチェーンを含む統合レポートを返します。
1 つのプロンプト → WinDbg がダンプを開き、クラッシュを解析し、IDA がフォールトした関数を逆コンパイル — 統合レポートを約 1.8 秒で生成。
git clone https://github.com/DdUdle/ctxdebug.git
cd ctxdebug
pip install -e .
個別のサーバー:
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
または、統合ゲートウェイを使う — 1つのサーバーですべてのツールを利用できます:
claude mcp add mco-gateway -- python mco_gateway.py
完全な JSON 設定と環境変数については mcp_config_example.json を参照してください。
サーバーが登録されたら、AI クライアントに次のように尋ねてください:
Open C:\dumps\crash.dmp, run a full crash analysis,
and decompile the function at the fault address.
オーケストレーターは windbg_open_dump → windbg_analyze_crash → mco_pivot_to_ida を連鎖させ、呼び出し元チェーンを含む擬似コードを返します。
| 機能 | 動作内容 |
|---|---|
| ライブデバッガ制御 | x64dbg を通じてプロセスの実行、一時停止、ステップ実行、検査を行います。一度に 1 つのアドレスではなく、API グループ (memory、network、crypto) にブレークポイントを設定できます。 |
| デバッガ間ピボット | WinDbg のクラッシュダンプからアドレスを取得し、1 回のツール呼び出しで IDA Pro で開いて逆コンパイル、呼び出し元、呼び出し先を確認できます。 |
| ゴール駆動型分析 | x64dbg サーバーには、ツール呼び出しを連鎖させて多段階のゴール (アンパックループの発見やアンチ分析チェックの一覧化など) を計画するオプションの ReAct エージェント (agent_analyze) が含まれています。Claude、Groq、ローカル Ollama、またはヒューリスティックのみで動作します。 |
| 永続ノート | エージェントはパッカーシグネチャ、アンチ分析パターン、以前のセッションからのノートを保存し、新しいターゲットでそれらを呼び出せます。 |
| セッション記録 | ツール呼び出しは全文検索 (FTS5) 付きで SQLite に記録できます。タイムラインを再生したり、2 つのセッションを比較したり、Markdown レポートをエクスポートしたりできます。 |
| アンチ分析調査 | 静的スキャン (IDA のインポート/パターン) と動的スキャン (x64dbg の PEB/RDTSC) を 1 つのレポートに統合します。分析を許可されているサンプル向けに、オプションのラボパッチ (PEB フラグ、命令編集) も利用できます。 |
2024-11-05)localhost:2022 上の HTTP REST、6 つの候補からエンドポイントを自動検出X64A マジック + uint32 長 + 8 バイトパディング + JSON)| サーバー | ファイル | 動作内容 | ツール数 |
|---|---|---|---|
windbg | windbg_mcp.py | クラッシュダンプ、ヒープ分析、シャドウスタック、カーネルデバッグ | 70+ |
ida | ida_mcp.py | 逆コンパイル、xref、型復元、バイナリパッチ | 32+ |
x64dbg | agent/ | 動的分析、ReAct エージェント、メモリ検査とパッチ | 38+ |
mco | mco_orchestrator.py | デバッガ間の複合ワークフロー | 7 |
mco-sessions | mco_sessions.py | セッション記録、FTS 検索、Markdown エクスポート | 13 |
mco-gateway | mco_gateway.py | 統合プロキシ — すべてのサーバーを単一接続経由で | すべて |
Windows SDK の cdb.exe が必要です。デフォルトパス:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe
WINDBG_MCP_CDB は、パスが異なる場合に設定してください。事前起動は不要です — ツールはオンデマンドでダンプを開くかアタッチします。
バイナリをロードした状態で IDA Pro 9.x を開きます。
Python コンソールで次を実行します:
exec(open(r'path\to\ctxdebug\ida_server_plugin.py').read())
HTTPサーバーがポート 2022 で起動します。
C++プラグインをビルドします:
cd agent\plugins
build_plugin.bat
mco_agent.dp64 を x64dbg のプラグインディレクトリにコピーします。
x64dbg を再起動します — プラグインは名前付きパイプ \\.\pipe\x64dbg_ai_agent を公開します。
クラッシュダンプ → ソース (1コマンド)
mco_crash_to_source(dump_path="C:\\dumps\\crash.dmp")
ダンプを開き、!analyze -v を実行し、フォールトアドレスを抽出し、IDA でクラッシュした関数を逆コンパイルし、呼び出し元を含む擬似コードを返します。
アンチ分析レポート
mco_bossix_report()
bossix_hide() # PEB flag adjustments (lab)
bossix_patch(address) # NOP / flip JCC at a check (lab)
アンチデバッグチェックを実装したサンプルの許可されたラボ分析向け。
アドレスを擬似コードにピボットする
mco_pivot_to_ida(address="0x7FF712340000")
ゴール駆動型分析
agent_analyze(goal="Find the unpacking loop and identify the OEP")
エージェントは一連のツール呼び出しを計画し、それらを実行して、LLMバックエンドの有無にかかわらず調査結果を報告します。
セッション記録
session_start(name="crash dump review")
# ... do your work ...
session_end(notes="null deref in CRenderObject::Destroy")
session_export_markdown(session_id=1)
| モード | コマンド |
|---|---|
| ツールのみ(デフォルト) | 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) |
IDA_MCP_TOKEN | ida | IDA HTTP サーバー用のベアラートークン — ループバック外にバインドする場合に必須 |
IDA_SERVER_HOST | ida | IDA 内 HTTP サーバーのバインドアドレス(デフォルト: 127.0.0.1) |
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 | 有効化するサーバーのカンマ区切りサブセット |