
Academic Research Edition - T1: ユーザーモード回避(難読化 + システムコールゲートウェイ)、T2: BYOVD カーネルブリッジ、T3: DMA ハードウェア(今後の作業)。
アカデミックリサーチ版 — サイバーセキュリティ教育および大学レベルのリバースエンジニアリング研究のための、多層型アンチチート回避機能を備えた改変版 Cheat Engine。
免責事項: このプロジェクトは学術研究、大学の課題、サイバーセキュリティ教育のみを目的としています。学期終了後は必ず破棄してください。
┌─────────────────────────────────────────────────────────┐
│ Cheat Engine 7.5 │
│ (Lazarus / FreePascal) │
├─────────────────────────────────────────────────────────┤
│ T1: ユーザーモード回避 │
│ ├─ ウィンドウ/プロセス/レジストリ名のランダム化 (-daltname)│
│ ├─ PEメタデータの除去 & セクション名の変更 │
│ ├─ Rich Headerの除去 & タイムスタンプのランダム化 │
│ ├─ ダイレクトシステムコールスタブ (ntdll.dllフックの回避) │
│ └─ ディスクからの動的システムコール番号抽出 │
├─────────────────────────────────────────────────────────┤
│ T2: カーネルブリッジ (BYOVD — WinNotify.sys) │
│ ├─ アンチチート検出 (10エンジン) │
│ ├─ Microsoft署名ドライバ (WinNotify.sys / signeddrv.sys) │
│ ├─ IOCTLによるカーネル仮想メモリR/W (物理マッピングなし) │
│ ├─ 任意プロセスに対するCR3ベースのページテーブルウォーク │
│ ├─ カーネルベース開示IOCTLによるKASLR回避 │
│ ├─ ObCallbackバイパス (カーネル構造体の操作) │
│ └─ プロセス隠蔽 (PsActiveProcessLinksのアンリンク) │
├─────────────────────────────────────────────────────────┤
│ T3: DMAハードウェア [未実装] │
│ └─ ハイパーバイザーレベルのACバイパス用PCIe FPGA/デバイス │
└─────────────────────────────────────────────────────────┘
.
├── README.md
├── Build.ps1 # 自動ビルドパイプライン (CEのクローン、パッチ適用、ビルド)
├── .gitignore
├── src/
│ ├── cheatengine.lpi # プロジェクト: メタデータ名変更、-daltname定義、出力名変更
│ ├── cheatengine.lpr # メイン: 動的Application.Title
│ ├── NewKernelHandler.pas # コア: T1+T2統合、関数ポインタ交換
│ ├── SyscallGateway.pas # T1: ダイレクトシステムコールスタブ (Read/Write/Open/VQE)
│ ├── AntiCheatDetector.pas # T2: AC検出 — プロセス、ドライバ、サービス
│ ├── PhysicalMemory.pas # T2: ドライバローダー + IOCTLによる物理メモリR/W
│ ├── KernelBridge.pas # T2: カーネルバイパスオーケストレーター + ObCallback無効化
│ ├── StealthHiding.pas # T2: PsActiveProcessLinksアンリンクによるプロセス隠蔽
│ ├── PEPatcher.ps1 # ビルド後PE変異
│ └── Build-Stealth.ps1 # レガシー単体ビルドスクリプト
└── cheat-engine/ # 上流CEソース (Build.ps1によってクローン)
表面難読化 — CEの組み込み {$ifdef altname} 条件付きコンパイルを使用:
"Cheat Engine 7.5" の代わりに "Runtime Modifier"\Software\Cheat Engine\ の代わりに \Software\Runtime Modifier\cheatengine-x86_64.exe の代わりに sysdiag64.exeシステムコールゲートウェイ — CEのDBKカーネルドライバは無効化されています(その証明書ハッシュはEAC/BEによってブラックリスト登録されています)。代わりに、すべてのメモリアクセス関数(ReadProcessMemory、WriteProcessMemory、VirtualQueryEx、OpenProcess)はダイレクト syscall 命令スタブを通じてリダイレクトされます:
ntdll.dll を読み取りますmov r10, rcx; mov eax, [syscall_num]; syscall; retntdll.dll 内のユーザーモードフックをバイパスしますObRegisterCallbacks を介したハンドル作成をブロックするカーネルレベルアンチチート向け:
EasyAntiCheat.sys、BEDaisy.sys)とサービスをスキャンWinNotify.sys / signeddrv.sys(Microsoft Authenticode署名、2026年、0件のVT検出)を読み込み0x22200C): カーネルのロード済みモジュールリストから直接 ntoskrnl.exe ベースアドレスを読み取り0x222040/0x222044): 任意のカーネル仮想アドレスを読み書き — 物理アドレス変換は不要ActiveProcessLinks を辿って対象ゲームプロセスを特定0x222050/0x222054): ゲームの DirectoryTableBase を使用して、自身のページテーブルを通じて仮想メモリを読み書きハイパーバイザーレベルのアンチチート(Vanguard、Faceit)に対しては、カーネルとハイパーバイザーの両方の保護をバイパスしてバスから物理RAMを読み取るPCIe DMAデバイスが必要です。将来の研究拡張として文書化されています。
0x222040)0x222044)0x222050/0x222054)C:\Windows\System32\drivers\ またはコンパイル済み実行ファイルと同じ場所に配置git clone https://github.com/NulledNah/cheat-engine-undetectable.git
cd cheat-engine-undetectable
.\Build.ps1 -Clean
# LazarusがC:\lazarusにない場合:
.\Build.ps1 -Clean -LazarusPath "D:\lazarus"
スクリプトの処理:
lazbuild を使用してコンパイルbin\sysdiag64.exe を出力sysdiag64.exeを起動
│
├─ DetectAntiCheat() → 実行中のACエンジンをスキャン
│
├─ [カーネルACが検出されない場合]
│ └─ T1アクティブ: すべての操作でシステムコールバイパス
│
├─ [EAC/BE検出 + WinNotify.sys利用可能]
│ ├─ SCM経由でドライバを読み込み
│ ├─ IOCTL 0x22200C → カーネルベースをリーク (KASLR回避)
│ ├─ IOCTL 0x222040 → PsInitialSystemProcessを読み取り → ActiveProcessLinksをウォーク
│ ├─ ゲームのEPROCESSを検出 → DirectoryTableBase (CR3) を抽出
│ ├─ 自身のプロセスを列挙から隠蔽
│ └─ すべてのメモリ操作はCR3ページテーブルウォーク経由 (ハンドルゼロ、OpenProcessゼロ)
│
└─ [Vanguard/Faceit検出]
└─ 警告: ハイパーバイザーAC — T3が必要 (DMAハードウェア、未実装)
このプロジェクトは以下のサイバーセキュリティ概念を示しています:
EPROCESS、ObCallbacks、ページテーブル構造の直接変更学術利用のみ — このプロジェクトは大学の論文/研究カリキュラムの一部です。大学の方針に従い、学期終了後は必ず破棄されます。
| アンチチート | タイプ | 戦略 | ステータス |
|---|
| Warden (Blizzard) | ユーザーモード | T1 | 動作可能 |
| VAC (Valve) | ユーザーモード | T1 | 動作可能 |
| XIGNCODE3 | ユーザーモードドライバ | T1 | 動作可能 |
| EasyAntiCheat | カーネルドライバ | T2 | WinNotify.sysが必要 |
| BattlEye | カーネルドライバ | T2 | WinNotify.sysが必要 |
| nProtect GameGuard | カーネルドライバ | T2 | WinNotify.sysが必要 |
| Ricochet (CoD) | カーネルドライバ | T2 | 部分的 |
| Vanguard (Riot) | ハイパーバイザー | T3 (DMA) | 未実装 |
| Faceit / ESEA | カーネル + ハイパーバイザー | T3 (DMA) | 未実装 |
OpenProcessNtReadVirtualMemoryPsActiveProcessLinks からアンリンク