x64dbg MCP について
x64dbg MCPは、MCPクライアントを実行中のx64dbgまたはx32dbgセッションに接続し、制御されたデバッグとリバースエンジニアリングを支援します。実行時の証拠を収集し、バイナリアーティファクトを作成・検証して、ファイルハッシュとモジュールRVAでIDAに引き継ぎます。
主な機能
- 01デバッグ対象プロセスの起動とアタッチ
- 02レジスター、メモリ、スレッド、ブレークポイントの確認
- 03実行時トレースとカバレッジの収集
- 04文字列、OEP、インポート候補の検索
- 05PEアーティファクトのダンプと検証
- 06IDAとの証拠の受け渡し
活用シーン
- 01デバッガーで実行ファイルを調査
- 02アンパックしたバイナリの復元と検証
- 03実行時の発見事項をIDAデータベースへ送信
MCP 対応
プロセス管理、デバッグ、実行時証拠の収集、アーティファクトの復元、IDAへの引き継ぎを行うツールをMCPクライアントに提供し、x64dbgとx32dbgのセッションを制御します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
https://github.com/user-attachments/assets/07b813eb-4175-4f14-b21b-602548906398
x64dbg MCP は、MCP クライアントから実際の x64dbg または x32dbg セッションを、制御された形で操作できるようにします。ライブデバッグを再現可能なリバースエンジニアリングのワークフローに変え、対象プロセスを正確に指定し、実行時の情報を観察し、有用な成果物を復元して独立して検証し、その証拠を IDA に引き継ぎます。
できること
- 引数、作業ディレクトリ、環境、子プロセスのポリシーを指定して起動またはアタッチします。
- レジスタ、メモリ、スレッド、モジュール、管理対象のブレークポイントを読み取り、変更します。
- 命令、API、ヒープ、例外、基本ブロックの証拠を収集します。
- 比較値、実行時文字列、間接呼び出し、OEP、インポートを見つけます。
- メモリからの PE ダンプ、ミニダンプ、修復済みインポート、パッチ適用済みエクスポートを生成します。
- 不安定な実行時アドレスではなく、ポータブルな ファイル SHA-256 + モジュール RVA ID を使って、実行時情報を IDA とやり取りします。
ツールグループ
| ワークフロー | 代表的なツール | 結果 |
|---|---|---|
| 起動とバインド | InitDebuggee、AttachToProcess、LaunchFileUnderDebugger、WaitForBreakpoint | 再現可能なプロセスとセッションの ID |
| ライブ制御 | RegisterGet、RegisterSet、MemoryRead、MemoryWrite、DebugSetBreakpoint、SetHardwareBreakpoint | 実行、メモリ、ブレークポイントの制御された変更 |
| 実行時の証拠 | RunNativeTrace、GetNativeTrace、StartApiTrace、StartHeapTrace、GetBasicBlockCoverage、WaitForBreakpointCapture | 命令パス、API/ヒープ呼び出し、例外、実行済みブロック |
| キーとアンパックの復元 | SearchStrings、ScanMemoryStrings、PatternFindMem、FindOEP、RunUntilOEP、FindIATCandidates、InspectRuntimeIAT | 比較、文字列、OEP、実行時インポート候補 |
| ダンプと修復 | WriteMiniDump、DumpModuleRaw、DumpPeFromMemory、ScanMemoryForPEImages、FixDumpImports、ValidateDump、ExportPatchedFile | 再現可能なダンプと、独立して検証された PE 成果物 |
| IDA への証拠の引き継ぎ | ExportRuntimeEvidence、ImportStaticAnnotations、SyncBreakpoints、ResolveModuleRva | ハッシュ/RVA で識別されたコメント、ラベル、カバレッジ、API 情報 |
完全なカタログ、パラメーター、応答仕様については、
ツールリファレンスをご覧ください。コンパクトプロファイルでは、モデル向けの通常の応答を短く保ちます。必要に応じて、detail="full" と full プロファイルで完全な証拠を確認できます。
クイックセットアップ
Releases から Windows 用の統合バンドルをダウンロードしてください。このバンドルには、両方のネイティブプラグインと Python バックエンドが含まれています。
- x64dbg 用の
plugins\MCPx64dbg.dp64 - x32dbg 用の
plugins\MCPx64dbg.dp32 runtime\srcとruntime\requirements.txtruntime\tools\bin\managed_probeにある、単体で動作する x64/x86 マネージドランタイムプローブ
x64dbg/x32dbg を終了します。ダウンロードした ZIP があるフォルダーで PowerShell を開き、以下のブロックを実行してください。MCP バンドルの保存先と、x64dbg がすでにインストールされている場所を尋ねられます。ドライブやインストールディレクトリは固定されていません。以下のクライアント固有のコマンドを実行するため、同じ PowerShell ウィンドウを開いたままにしてください。
$Archive = Get-ChildItem -File .\x64dbg-mcp-windows-*.zip |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
if (-not $Archive) { throw 'The x64dbg MCP release ZIP was not found in this folder.' }
$BundleRoot = Read-Host 'Absolute folder where x64dbg MCP should be extracted'
$X64dbgRoot = Read-Host 'Absolute folder containing the x64 and x32 x64dbg folders'
$BundleRoot = [IO.Path]::GetFullPath(
[Environment]::ExpandEnvironmentVariables($BundleRoot.Trim()))
$X64dbgRoot = (Resolve-Path -LiteralPath (
[Environment]::ExpandEnvironmentVariables($X64dbgRoot.Trim()))).Path
if (-not (Test-Path -LiteralPath (Join-Path $X64dbgRoot 'x64\x64dbg.exe'))) {
throw "x64dbg.exe was not found under $X64dbgRoot\x64"
}
if (-not (Test-Path -LiteralPath (Join-Path $X64dbgRoot 'x32\x32dbg.exe'))) {
throw "x32dbg.exe was not found under $X64dbgRoot\x32"
}
Expand-Archive -LiteralPath $Archive.FullName -DestinationPath $BundleRoot -Force
Copy-Item (Join-Path $BundleRoot 'plugins\MCPx64dbg.dp64') `
(Join-Path $X64dbgRoot 'x64\plugins\MCPx64dbg.dp64') -Force
Copy-Item (Join-Path $BundleRoot 'plugins\MCPx64dbg.dp32') `
(Join-Path $X64dbgRoot 'x32\plugins\MCPx64dbg.dp32') -Force
$RuntimeRoot = Join-Path $BundleRoot 'runtime'
Set-Location $RuntimeRoot
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
$PythonExe = (Resolve-Path .\.venv\Scripts\python.exe).Path
$Launcher = (Resolve-Path .\src\mcp_stdio_launcher.py).Path
[pscustomobject]@{
PythonExe = $PythonExe
Launcher = $Launcher
X64dbgRoot = $X64dbgRoot
}
Codex
サーバーを ~\.codex\config.toml に追加します。山括弧で囲まれた3つの値を、セットアップブロックに表示された絶対パスに置き換えてください。TOML のシングルクォート文字列では、Windows のバックスラッシュはそのまま保持されます。
[mcp_servers.x64dbg]
command = '<PythonExe>'
args = ['<Launcher>']
startup_timeout_sec = 90
[mcp_servers.x64dbg.env]
X64DBG_ROOT = '<X64dbgRoot>'
X64DBG_MCP_TOOL_PROFILE = 'compact'
通常のターゲット起動では、EXE パスを指定して InitDebuggee を直接呼び出します。x86/x64 を検出し、X64DBG_ROOT から対応するデバッガーを起動して、ブリッジを待機し、ターゲットを開きます。事前に BridgeHello を実行したり、デバッガーのパスを手動で検索したりする必要はありません。
任意のインストール確認:x64dbg または x32dbg を起動して、ブリッジを確認します。
& $PythonExe (Join-Path $RuntimeRoot 'src\x64dbg.py') GetDebuggerPluginStatus
GetScyllaHideStatus.installed と integrationReady は、MCP InjectorCLI/HookLibrary バックエンドの状態を示します。guiPluginPresent は、任意の x64dbg GUI プラグインのみを示します。MCP によるインジェクションにこのプラグインは必要ありません。
ScyllaHide はオプトイン方式です。起動ツールでは、デフォルトで use_scyllahide="off" が設定され、auto でもインジェクションはスキップされます。必要な場合は、明示的なプロファイルとともに force を使用してください。CLI バックエンドは、インジェクターの隣に専用の INI ファイルを配置し、正確な PID を対象にします。互換性設定では、再現された継続処理のクラッシュを避けるため、NtContinueHook と KillAntiAttach を同時に無効にします。結果には、これらの上書き設定が報告されます。ただし、すべてのサードパーティ製プロファイルが、あらゆるターゲットや Windows のビルドと互換性があることを保証するものではありません。
Claude Code
ユーザースコープを指定して、同じ stdio サーバーを Claude Code に追加します。このコマンドでは、マシン固有の場所を直接記述する代わりに、セットアップブロックで選択されたパスを使用します。
$ClaudeServer = [ordered]@{
command = $PythonExe
args = @($Launcher)
env = [ordered]@{
X64DBG_ROOT = $X64dbgRoot
X64DBG_MCP_TOOL_PROFILE = 'compact'
}
} | ConvertTo-Json -Depth 4 -Compress
claude mcp add-json x64dbg $ClaudeServer --scope user
claude mcp list
または、claude mcp add を実行し、同じコマンド、引数、環境変数を対話形式で入力します。
Claude Desktop およびその他の stdio クライアント
クライアントの MCP JSON 設定を使用します。Windows 版 Claude Desktop の場合、ファイルは %APPDATA%\Claude\claude_desktop_config.json です。上記で選択した実際のパスを使って、JSON ブロックを生成します。
$ClientConfig = [ordered]@{
mcpServers = [ordered]@{
x64dbg = [ordered]@{
command = $PythonExe
args = @($Launcher)
env = [ordered]@{
X64DBG_ROOT = $X64dbgRoot
X64DBG_MCP_TOOL_PROFILE = 'compact'
}
}
}
}
$ClientConfig | ConvertTo-Json -Depth 6
Cursor、VS Code MCP、Windsurf およびその他の stdio クライアントでは、同じ command/args/env の仕様を使用します。異なるのは JSON ファイルの場所だけです。
ソースからビルドする
git clone https://github.com/rison1337/x64dbgMCP.git
Set-Location x64dbgMCP
cmake -S . -B build -G "Visual Studio 17 2022" -DX64DBG_DOWNLOAD_SDK=ON
cmake --build build --target all_plugins --config Release
$X64dbgRoot = (Resolve-Path -LiteralPath (Read-Host 'x64dbg installation folder')).Path
Copy-Item build\build64\Release\MCPx64dbg.dp64 `
(Join-Path $X64dbgRoot 'x64\plugins\MCPx64dbg.dp64') -Force
Copy-Item build\build32\Release\MCPx64dbg.dp32 `
(Join-Path $X64dbgRoot 'x32\plugins\MCPx64dbg.dp32') -Force
IDA Pro MCP Fusion への引き継ぎ
IDA ワークフローは、 rison1337/ida-pro-mcp-fusion フォーク向けに設計されています。x64dbg MCP は IDA の代替を装ったり、無関係なデータベースを暗黙的に変更したりしません。代わりに、次の処理を行います。
ExportRuntimeEvidenceは、ターゲットの SHA-256、アーキテクチャ、モジュール RVA、実行ブロック、API 呼び出し、コメント、ラベル、関数を含む、バージョン管理された証拠ドキュメントを書き出します。ResolveModuleRvaとコーディネーターは、ライブアドレスを静的イメージの識別情報に正規化します。tools/ida_evidence_coordinator.pyは、開いている Fusion データベースの SHA-256 とアーキテクチャが一致することを検証し、その後、決定的なset_name、set_comments、define_func、およびカバレッジ/API コメントのアクションを作成します。- Fusion は IDA ワーカーでこれらのアクションを適用し、結果を永続的な SQLite キャッシュに保持して、後の複数バイナリの分析に利用できます。
これは明示的な成果物/プロトコルの引き継ぎであるため、内容を確認でき、再試行も可能です。IDA 側のワーカーとキャッシュのモデルについては、 コーディネーターと Fusion の READMEを参照してください。
ドキュメント
CI では Python のコントラクトと、両方のネイティブプラグインアーキテクチャを検証します。リリースワークフローでは、パッケージ化された stdio サーバーとマネージドプローブも検証します。ライブデバッガーのゲートはローカルで実行され、JSON レポートを保持します。コントリビューションをご覧ください。 信頼できないバイナリは、使い捨ての VM 内で解析してください。
GPL-3.0。Sam W (Wasdubya) による x64dbgMCP をベースにしています。 クレジットについては NOTICE をご覧ください。
x64dbg MCP は、MCP クライアントに x64dbg または x32dbg の実際のセッションを安全に操作する手段を提供します。ライブデバッグを再現可能なリバースエンジニアリングワークフローに変え、正確なプロセスへの接続、ランタイム情報の取得、有用なアーティファクトの復元、結果の独立検証、そして IDA への情報引き渡しを実現します。
機能
- 引数、cwd、環境、子プロセスポリシーを指定して起動・アタッチします。
- 所有者を制御しながら、レジスター、メモリ、スレッド、モジュール、ブレークポイントを操作します。
- 命令、API、ヒープ、例外のトレースと、基本ブロックの証拠を取得します。
- 比較、ランタイム文字列、間接呼び出し、OEP、インポートを検索します。
- メモリから PE を取得し、minidump を作成し、IAT を修正してパッチ適用済みファイルを書き出します。
- ランダムなランタイム VA ではなく、ファイルの SHA-256 + module RVA の移植可能な組み合わせを使って IDA と連携します。
ツールグループ
| 段階 | MCP ツールの例 | 得られるもの |
|---|---|---|
| 起動と接続 | InitDebuggee、AttachToProcess、LaunchFileUnderDebugger、WaitForBreakpoint | 再現可能なプロセスと正確なセッション ID |
| 制御 | RegisterGet、RegisterSet、MemoryRead、MemoryWrite、DebugSetBreakpoint、SetHardwareBreakpoint | 制御された実行/ステップ、メモリ、ブレークポイント |
| ランタイム情報 | RunNativeTrace、GetNativeTrace、StartApiTrace、StartHeapTrace、GetBasicBlockCoverage、WaitForBreakpointCapture | 命令経路、API/ヒープ、例外、実行されたブロック |
| キー検索とアンパック | SearchStrings、ScanMemoryStrings、PatternFindMem、FindOEP、RunUntilOEP、FindIATCandidates、InspectRuntimeIAT | 比較、文字列、OEP、ランタイム IAT の候補 |
| ダンプと復元 | WriteMiniDump、DumpModuleRaw、DumpPeFromMemory、ScanMemoryForPEImages、FixDumpImports、ValidateDump、ExportPatchedFile | 再現可能なダンプと検証済み PE アーティファクト |
| IDA への引き渡し | ExportRuntimeEvidence、ImportStaticAnnotations、SyncBreakpoints、ResolveModuleRva | hash/RVA に基づくコメント、ラベル、カバレッジ、API 情報 |
全カタログ、パラメーター、応答コントラクトについては、
ツールリファレンスをご覧ください。compact プロファイルでは通常の応答が短くなります。detail="full" と full プロファイルでは、すべての証拠が返されます。
クイックセットアップ
Releases から Windows 用の統合アーカイブをダウンロードしてください。アーカイブには、両方のネイティブプラグインと Python バックエンドが含まれています。
- x64dbg 用の
plugins\MCPx64dbg.dp64 - x32dbg 用の
plugins\MCPx64dbg.dp32 runtime\srcとruntime\requirements.txtruntime\tools\bin\managed_probeにある、スタンドアロンの x64/x86 マネージドランタイムプローブ
x64dbg/x32dbg を終了します。ダウンロードした ZIP があるフォルダーで PowerShell を開き、以下のブロックを実行してください。MCP 用のフォルダーと、インストール済み x64dbg のパスを自動で尋ねます。ドライブや場所を事前に決めておく必要はありません。選択した MCP クライアント向けのコマンドを実行するまで、この PowerShell ウィンドウを閉じないでください。
$Archive = Get-ChildItem -File .\x64dbg-mcp-windows-*.zip |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
if (-not $Archive) { throw 'Архив релиза x64dbg MCP не найден в этой папке.' }
$BundleRoot = Read-Host 'Полный путь к папке, куда распаковать x64dbg MCP'
$X64dbgRoot = Read-Host 'Полный путь к папке x64dbg, содержащей каталоги x64 и x32'
$BundleRoot = [IO.Path]::GetFullPath(
[Environment]::ExpandEnvironmentVariables($BundleRoot.Trim()))
$X64dbgRoot = (Resolve-Path -LiteralPath (
[Environment]::ExpandEnvironmentVariables($X64dbgRoot.Trim()))).Path
if (-not (Test-Path -LiteralPath (Join-Path $X64dbgRoot 'x64\x64dbg.exe'))) {
throw "x64dbg.exe не найден в $X64dbgRoot\x64"
}
if (-not (Test-Path -LiteralPath (Join-Path $X64dbgRoot 'x32\x32dbg.exe'))) {
throw "x32dbg.exe не найден в $X64dbgRoot\x32"
}
Expand-Archive -LiteralPath $Archive.FullName -DestinationPath $BundleRoot -Force
Copy-Item (Join-Path $BundleRoot 'plugins\MCPx64dbg.dp64') `
(Join-Path $X64dbgRoot 'x64\plugins\MCPx64dbg.dp64') -Force
Copy-Item (Join-Path $BundleRoot 'plugins\MCPx64dbg.dp32') `
(Join-Path $X64dbgRoot 'x32\plugins\MCPx64dbg.dp32') -Force
$RuntimeRoot = Join-Path $BundleRoot 'runtime'
Set-Location $RuntimeRoot
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
$PythonExe = (Resolve-Path .\.venv\Scripts\python.exe).Path
$Launcher = (Resolve-Path .\src\mcp_stdio_launcher.py).Path
[pscustomobject]@{
PythonExe = $PythonExe
Launcher = $Launcher
X64dbgRoot = $X64dbgRoot
}
Codex
サーバーを ~\.codex\config.toml に追加します。山括弧で囲まれた3つの値を、セットアップブロックに表示された絶対パスに置き換えます。TOML のシングルクォート文字列では、Windows のバックスラッシュを二重にする必要はありません。
[mcp_servers.x64dbg]
command = '<PythonExe>'
args = ['<Launcher>']
startup_timeout_sec = 90
[mcp_servers.x64dbg.env]
X64DBG_ROOT = '<X64dbgRoot>'
X64DBG_MCP_TOOL_PROFILE = 'compact'
通常のターゲット起動では、EXE のパスを指定して InitDebuggee を直接呼び出します。ツールが x86/x64 を自動判定し、X64DBG_ROOT から適切な debugger を起動して、bridge を待機してからターゲットを開きます。BridgeHello による個別の確認や、x64dbg のパスを手動で探す必要はありません。
インストールを任意で確認するには、x64dbg または x32dbg を起動して、bridge を確認します。
& $PythonExe (Join-Path $RuntimeRoot 'src\x64dbg.py') GetDebuggerPluginStatus
GetScyllaHideStatus.installed と integrationReady のフィールドは、InjectorCLI、HookLibrary、profile INI をベースとする backend に関するものです。guiPluginPresent が示すのは、任意の x64dbg GUI プラグインの有無のみです。MCP のインジェクションには必要ありません。
ScyllaHide は明示的に有効にします。起動ツールはデフォルトで use_scyllahide="off" を使用し、auto でもインジェクションをスキップします。必要に応じて、選択したプロファイルとともに force を使用してください。CLI backend は injector の隣に個別の INI を作成し、正確な PID を渡します。再現された続行時のクラッシュを解消するため、KillAntiAttach とともに NtContinueHook を無効にし、これらの変更を結果に報告します。プロファイルのその他の設定との互換性は、ターゲットと Windows によって異なります。
Claude Code
同じ stdio サーバーをユーザー範囲で Claude Code に追加します。コマンドでは、別のコンピューター上の場所ではなく、上で選択したパスを使用します。
$ClaudeServer = [ordered]@{
command = $PythonExe
args = @($Launcher)
env = [ordered]@{
X64DBG_ROOT = $X64dbgRoot
X64DBG_MCP_TOOL_PROFILE = 'compact'
}
} | ConvertTo-Json -Depth 4 -Compress
claude mcp add-json x64dbg $ClaudeServer --scope user
claude mcp list
または、claude mcp add を起動し、同じ command、args、env を対話形式で入力します。
Claude Desktop とその他の stdio クライアント
クライアントの MCP JSON 設定を使用します。Windows の Claude Desktop では %APPDATA%\Claude\claude_desktop_config.json です。実際に選択したパスを使って JSON を作成します。
$ClientConfig = [ordered]@{
mcpServers = [ordered]@{
x64dbg = [ordered]@{
command = $PythonExe
args = @($Launcher)
env = [ordered]@{
X64DBG_ROOT = $X64dbgRoot
X64DBG_MCP_TOOL_PROFILE = 'compact'
}
}
}
}
$ClientConfig | ConvertTo-Json -Depth 6
Cursor、VS Code MCP、Windsurf、その他の stdio クライアントでも同じ command/args/env の規約を使用します。異なるのは JSON ファイルのパスのみです。
ソースからのビルド
git clone https://github.com/rison1337/x64dbgMCP.git
Set-Location x64dbgMCP
cmake -S . -B build -G "Visual Studio 17 2022" -DX64DBG_DOWNLOAD_SDK=ON
cmake --build build --target all_plugins --config Release
$X64dbgRoot = (Resolve-Path -LiteralPath (Read-Host 'Папка установки x64dbg')).Path
Copy-Item build\build64\Release\MCPx64dbg.dp64 `
(Join-Path $X64dbgRoot 'x64\plugins\MCPx64dbg.dp64') -Force
Copy-Item build\build32\Release\MCPx64dbg.dp32 `
(Join-Path $X64dbgRoot 'x32\plugins\MCPx64dbg.dp32') -Force
IDA Pro MCP Fusion との同期
この連携は、フォーク版の rison1337/ida-pro-mcp-fusion 専用に設計されています。x64dbg MCP は IDA の代わりにはならず、無関係なデータベースにも書き込みません。
ExportRuntimeEvidenceは、ターゲットの SHA-256、アーキテクチャ、module RVA、実行ブロック、API 呼び出し、labels、comments、関数を含む、バージョン管理された JSON を保存します。ResolveModuleRvaと coordinator が、runtime アドレスを静的イメージの座標に変換します。tools/ida_evidence_coordinator.pyは、開いている Fusion データベースの SHA-256 とアーキテクチャを照合し、set_name、set_comments、define_func、coverage/API コメントの決定論的なアクションを作成します。- Fusion は自身の IDA worker でアクションを適用し、次回以降の複数バイナリ調査に向けて、結果を永続的な SQLite cache に保存できます。
これは、不安定な VA を介した隠れた連携ではなく、明示的で検証可能かつ再現可能な artifact/protocol handoff です。詳細は、coordinator と Fusion README を参照してください。
ドキュメント
CI では、Python の規約と両アーキテクチャのネイティブプラグインを検証します。リリースワークフローでは、ビルド済みアーカイブから stdio サーバーと managed probes も検証します。debugger のライブ検証はローカルで実行し、JSON レポートを保存します。コントリビューションを参照してください。不明なバイナリは使い捨ての VM で解析してください。
GPL-3.0。プロジェクトは x64dbgMCP Sam W (Wasdubya) をベースにしています。クレジット:NOTICE。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。