
Cursor、Copilot、Claude AIをMCP経由でCheat Engineに直接接続します。自然言語を使用してリバースエンジニアリング、ポインタスキャン、メモリ解析を自動化します。
数十億ドル規模のAIデータセンターに、プログラムのメモリを解析させましょう。
MOD、トレーナー、セキュリティ監査、ゲームボットの作成、RE(リバースエンジニアリング)の加速など、あらゆるプログラムやゲームで行う作業を、ほんのわずかな時間で実現できます。
[!NOTE] スターを付けてくれた皆さん、本当にありがとうございます! <3
特に、すべてのコントリビューターの皆さんに心から感謝します!!
@libangli218, @lauralex, @iamtyroon, @HachiroSan, @Attacktive
あなたは何ギガバイトものメモリを眺めている。何百万ものアドレス。何千もの関数。あのポインタ、あの構造体を見つけるには、数日から数週間もの手作業が必要だ。
ただ質問するだけで済んだらどうだろう?
「パケット復号化フックを見つけて。」
「キャラクター座標のOPコードを見つけて。」
「HP値のOPコードを見つけて。」
「ゲームアップデート後もトレーナーが安定する、ユニークなAOBパターンを見つけて。」
これこそが、このツールが実現することだ。
- ヘキサダンプをクリックし続けるのはやめて、メモリと会話を始めよう。
| 従来(手作業) | 導入後(AIエージェント + MCP) |
|---|---|
| 1日目: パケットのアドレスを見つける | 1分目: 「RXパケット復号化フックを見つけて」 |
あなたのAIはこれで次のことが可能になります:
[[base+0x10]+0x20]+0x8 → ミリ秒で解決flowchart TD
AI[AI Agent: Claude/Cursor/Copilot]
AI -->|MCP Protocol - JSON-RPC over stdio| MCP
MCP[mcp_cheatengine.py - Python MCP Server]
MCP <-->|Named Pipe - Async| PIPE
PIPE["\\.\\pipe\\CE_MCP_Bridge_v99"]
PIPE <--> CE
subgraph CE[Cheat Engine - DBVM Mode]
subgraph LUA[ce_mcp_bridge.lua]
WORKER[Worker Thread - Blocking I/O]
MAIN[Main Thread - GUI + CE API]
WORKER <-->|Sync| MAIN
end
end
MAIN -->|Memory Access| TARGET[Target .exe]
pip install -r MCP_Server/requirements.txt
または手動で:
pip install mcp pywin32
[!NOTE] ネイティブパイプモードは、名前付きパイプ(
pywin32)を使用するためWindowsのみ対応です。MCPサーバーがCheat Engineを実行しているWindows環境の外で動作し、名前付きパイプを直接開けない場合は、TCPリレートランスポートを使用してください。
File -> Execute Script -> MCP_Server/ce_mcp_bridge.luaを開く -> Execute。File -> Execute Scriptが表示されない場合は、Table -> Show Cheat Table Lua Scriptを使用し、下記のdofile(...)行を貼り付けて実行します:dofile([[C:\path\to\cheatengine-mcp-bridge\MCP_Server\ce_mcp_bridge.lua]])
次の表示を確認: [MCP v12.0.0] MCP Server Listening on: CE_MCP_Bridge_v99
MCP設定(例: mcp_config.json)に追加します:
{
"servers": {
"cheatengine": {
"command": "python",
"args": ["C:/path/to/MCP_Server/mcp_cheatengine.py"]
}
}
}
IDEを再起動してMCPサーバー設定を読み込みます。
Codexの場合は、~/.codex/config.tomlにTOMLサーバーブロックを追加します:
[mcp_servers.cheatengine]
command = "python"
args = ['C:\path\to\cheatengine-mcp-bridge\MCP_Server\mcp_cheatengine.py']
Windowsパスにはシングルクォートを使用して、TOMLがバックスラッシュを文字通りに扱うようにします。
TCPリレーを使用すると、mcp_cheatengine.pyはWindowsの名前付きパイプを直接開く代わりに、TCPソケットを介してCheat Engineと通信できます。Cheat EngineとLuaブリッジは引き続きWindows上で動作し、MCPサーバーはリレーに到達できる場所ならどこでも実行できます(別のWindowsプロセス、VM、コンテナ、Linuxホスト、リモートマシンなど)。また、Luaブリッジを変更せずにWSLでも使用できます。
MCP_Server/ce_mcp_bridge.luaを読み込みます。python C:\path\to\cheatengine-mcp-bridge\MCP_Server\ce_tcp_relay.py --host 127.0.0.1 --port 9876
pywin32なしでMCP依存関係をインストールし、TCPトランスポートでMCPサーバーを実行 / 設定します:python3 -m pip install -r MCP_Server/requirements-tcp.txt
CE_MCP_TRANSPORT=tcp \
CE_MCP_HOST=127.0.0.1 \
CE_MCP_PORT=9876 \
python3 /path/to/cheatengine-mcp-bridge/MCP_Server/mcp_cheatengine.py
環境変数をサポートするMCPクライアント設定の場合:
{
"servers": {
"cheatengine": {
"command": "python3",
"args": ["/path/to/cheatengine-mcp-bridge/MCP_Server/mcp_cheatengine.py"],
"env": {
"CE_MCP_TRANSPORT": "tcp",
"CE_MCP_HOST": "127.0.0.1",
"CE_MCP_PORT": "9876"
}
}
}
}
リレーの--hostとMCPサーバーのCE_MCP_HOSTは、ネットワーク構成に合ったアドレスに設定してください。リレーは信頼できるインターフェースにのみバインドしてください。リレーに到達できる人なら誰でもCheat Engineブリッジを制御できてしまうためです。
pingツールを使用して接続を確認します:
{"success": true, "version": "12.0.0", "message": "CE MCP Bridge Active"}
"What process is attached?"
"Read 16 bytes at the base address"
"Disassemble the entry point"
| ツール | 説明 |
|---|---|
| ツール | 説明 |
|---|---|
set_breakpoint, set_data_breakpoint | ハードウェアブレークポイント |
start_dbvm_watch | Ring -1の不可視トレース |
| ツール | 説明 |
|---|---|
open_process, get_process_list | 実行中のプロセスにアタッチ、または列挙 |
create_process | CEの制御下で新しいプロセスを起動 |
pause_process, |
| ツール | 説明 |
|---|---|
allocate_memory, free_memory | ターゲット内のメモリを確保・解放 |
set_memory_protection, full_access | ページ保護フラグを調整 |
| ツール | 説明 |
|---|---|
inject_dll | DLLをターゲットプロセスに読み込む |
execute_code, execute_method | シェルコードやCE Luaメソッドをリモートで実行 |
| ツール | 説明 |
|---|---|
register_symbol, get_symbol_info | 名前付きシンボルの作成と照会 |
enable_windows_symbols | PDBシンボル解決を有効化 |
| ツール | 説明 |
|---|---|
assemble_instruction | 単一のx86/x64命令をバイト列にアセンブル |
compile_c_code | Cソースをコンパイルして注入用シェルコードに変換 |
generate_api_hook_script | CEオートアセンブラのAPIフックテンプレートを生成 |
| ツール | 説明 |
|---|---|
find_window | タイトルまたはクラスでウィンドウを特定 |
send_window_message | ターゲットウィンドウにWM_*メッセージを送信 |
| ツール | 説明 |
|---|---|
get_pixel | スクリーン座標のピクセル色をサンプリング |
is_key_pressed, do_key_press | キーボード入力の照会とシミュレート |
| ツール | 説明 |
|---|---|
load_table, save_table | .CTチートテーブルファイルを読み込み / 保存 |
get_address_list | アクティブなチートテーブルのエントリを列挙 |
| ツール | 説明 |
|---|---|
dbk_get_cr3 | ターゲットプロセスのCR3レジスタを読み取る |
read_process_memory_cr3 | CR3バイパス経由で物理メモリを読み取る |
その他多数はAI_Context/MCP_Bridge_Command_Reference.mdにあります。
[!CAUTION] 必ず無効にしてください: Cheat Engine → Settings → Extra → 「Query memory region routines」
有効にした場合: 保護されたページをスキャンする際にDBVM / アンチチートと競合し、
CLOCK_WATCHDOG_TIMEOUTのBSODが発生します。
チートテーブルスクリプトにスクリプト全体を貼り付けるのではなく、dofile(...)でディスクからブリッジを読み込んでください。また、ブリッジは意図的にコマンドハンドラをグローバル関数として宣言しています。これにより、ブリッジ全体を一度にコンパイルした際に発生する、Cheat EngineのLuaチャンクにおけるローカル変数200個という上限を回避できます。
次の順に確認してください:
MCP Server Listening on: CE_MCP_Bridge_v99と表示されている。mcp_cheatengine.pyのパスが存在する。pip install -r MCP_Server/requirements.txtでmcpとpywin32の両方がインストールされている。pingツールを実行する。接続に成功するとsuccess: trueとブリッジのバージョンが返されます。Cheat Engineがターゲットプロセスにアタッチされるまではprocess_id: 0が正常です。値を見つける:
You: "Scan for gold: 15000" → AI finds 47 results
You: "Gold changed to 15100" → AI filters to 3 addresses
You: "What writes to the first one?" → AI sets hardware BP
You: "Disassemble that function" → Full AddGold logic revealed
構造体を理解する:
You: "What's at [[game.exe+0x1234]+0x10]?"
AI: "RTTI: CPlayerInventory"
AI: "0x00=vtable, 0x08=itemCount(int), 0x10=itemArray(ptr)..."
CLAUDE.md # Claude Code agent guidance (this repo)
README.md # User-facing documentation
MCP_Server/
├── mcp_cheatengine.py # Python MCP Server (FastMCP)
├── ce_mcp_bridge.lua # Cheat Engine Lua Bridge
└── test_mcp.py # Test Suite
AI_Context/
├── BATCH_WORKER_BRIEFING.md # Parallel-worker task specifications (v12 overhaul)
├── MCP_Bridge_Command_Reference.md # MCP Commands reference
├── CE_LUA_Documentation.md # Full CheatEngine 7.6 official documentation
└── AI_Guide_MCP_Server_Implementation.md # Full technical documentation for AI agent
テストの実行:
python MCP_Server/test_mcp.py
期待される出力:
✅ Memory Reading: 6/6 tests passed
✅ Process Info: 4/4 tests passed
✅ Code Analysis: 8/8 tests passed
✅ Breakpoints: 4/4 tests passed
✅ DBVM Functions: 3/3 tests passed
✅ Utility Commands: 11/11 tests passed
⏭️ Skipped: 1 test (generate_signature)
────────────────────────────────────
Total: 36/37 PASSED (100% success)
もはやエキスパートである必要はありません。正しい質問をするだけでいいのです。
⚠️ 教育目的の免責事項
このコードは教育および研究目的のみで提供されています。Model Context Protocol (MCP)とLLMベースのデバッグの能力を示すために作成されました。悪意のあるハッキング、マルチプレイヤーゲームでのチート、利用規約への違反にこれらのツールを使用することを容認しません。これはソフトウェアエンジニアリングの自動化のデモンストレーションです。
| 2日目: 何が書き込むのか追跡する | 3分目: 「アップデート後も永続するユニークなAOB署名を生成して」 |
| 3日目: RXフックを見つける | 6分目: 「移動OPコードを見つけて」 |
| 4日目: 構造体をドキュメント化する | 10分目: 「hexからプレーンテキストに変換するPythonインタプリタを作成して」 |
| 5日目: ゲームが更新され、最初からやり直し | 完了。 |
read_memory, read_integer, read_string |
| あらゆるデータ型を読み取る |
read_pointer_chain | [[base+0x10]+0x20]パスを追跡する |
scan_all, aob_scan | 値やバイトパターンを検索する |
| ツール | 説明 |
|---|
disassemble, analyze_function | コード解析 |
dissect_structure | フィールドと型を自動検出 |
get_rtti_classname | C++オブジェクト型を識別 |
find_references, find_call_references | 相互参照 |
unpause_process| ターゲットの実行を一時停止 / 再開 |
| 変数 | デフォルト | 目的 |
|---|
CE_MCP_TIMEOUT | 30 | 各MCPツール呼び出しのタイムアウト(秒)。 |
CE_MCP_ALLOW_SHELL | 未設定 | 1に設定するとrun_command / shell_executeツールが有効になります。任意コード実行のリスクがあります — デフォルトでは未設定のままにしてください。 |