Call of Duty アンチチートのリバースエンジニアリング
- 概要
- Black Ops Cold War のユーザーモードアンチチートを調査した結果を共有する。
- Treyarch のゲームで、TAC(Treyarch Anti-Cheat)と呼称する。
- 最新ゲームとの主な違いは、カーネルモードドライバーの有無である。
Arxan
- Arxan の役割
- Call of Duty のゲームで使用される難読化・保護ツール。
- 実行ファイルを暗号化し、デバッガやチェックサム不一致を検知するとプロセスを終了する。
ランタイム実行ファイル暗号化
- 実行ファイル保護
- ゲーム実行ファイルはパッキングおよび暗号化されており、Arxan がこれを解除・復号する。
実行ファイルチェックサム
- チェックサム監視
- Arxan は実行ファイルへのパッチを継続的に監視する。
Jmp 難読化
- 関数難読化
- 関数や命令を
jmp で分離し、分析を困難にする。
エントリーポイント難読化
- エントリーポイント保護
- Arxan で保護されたゲームのエントリーポイントは追跡しにくい。
ポインタ暗号化
- ポインタ保護
- 重要なポインタは使用前のたびに暗号化・復号される。
TAC のモニタリング検知方法
- API フック検知
- TAC は Windows API を使ってアンチチートを実行し、特定のパターンを検知する。
ランタイム API エクスポート参照
- API 参照
- TAC はモジュールハッシュと API 名ハッシュを使用して API を参照する。
デバッグレジスタ
- デバッグレジスタ検知
- TAC はデバッグレジスタを検知してプロセスを終了する。
ドライバー署名の強制
- テストモード検知
- Windows のテストモードを検知してアカウントにフラグを付ける。
TAC のプロセス終了方法
- プロセス終了
- TAC は 2 つの方法でプロセスを終了し、レジスタを初期化する。
チートログ検知
- コンソール割り当て検知
- コンソールウィンドウが割り当てられているかを確認してチートを検知する。
視覚要素検知
- ESP および UI 検知
- DirectX 12 を使用して画面に描画するチートを検知する。
1件のコメント
Hacker Newsの意見
製品の機能を販売後に削除することについては、法的な規制が必要だ。特に契約やEULAによって機能が削除される場合、ゲーム所有者には返金が必要だ。Steamでの購入無効化は法的に不可能であるべきで、アカウントのログインが制限された場合でも、アイテムやインベントリは取引可能であるべきだ。マルチプレイヤーゲームで倫理規定を施行するなら、ゲームに料金を課すことはできず、BAN措置は比例性に従うべきで、人が関与するコスト制限付きの控訴審査システムが必要だ
Activisionとの2年間の法廷闘争で、不当な永久BANを覆した。Activisionはチートの証拠を示せないまま敗訴した
自分はそのゲームを遊ばないが、パートナーが遊んでいる。地下にいるプレイヤーを観戦しているのを見たことがあり、クライアントがハックされていたりチートをしていたりする場合でも、サーバー側でプレイヤー状態が有効かどうかを検証すべきだ
ジャンプ難読化について気になる。無条件ジャンプは十分一般的なので、事前条件としてフィルタリングできないのだろうか。関数の終端を見つけるのは簡単そうに思えるが、スタックを解析して関数がどこで返るかを把握し、リターンアドレスの直前で呼び出しを探す方法はないのだろうか
この技術をどこで学んだのか気になる。この記事の内容を半分でも理解したいが、どう始めればいいのかわからない
人気のあるHorde/AllianceベースのMMOゲームで少しリバースエンジニアリングをしたことがあり、ほぼ同じ手順(FNV32エクスポートハッシュを含む)を踏んだ。非常によく似たトリックを使っているように見える。同じ保護でパックされていたのか気になる
優れた研究成果だ。明らかに著者にとって初めての経験ではない
メモリを読み書きできる限り、FPSゲームでオンラインチートを防ぐことはできない
シグネチャスキャンはリバースエンジニアリングで最も中毒性のある部分だ。シグネチャの一覧を作り、スクリプト言語向けのバインディングを書いて関数ポインタを呼び出す。多くのサードパーティ製Modプラットフォームが動く基盤になっている
マルチプレイヤーゲームにおけるチートは大きな問題で、主要なFPSゲームへの信頼を壊している。CSプレイヤーとして新しいCoDゲームを少し遊んだが、チートのせいで勧められるゲームがない。Escape From Tarkovのようなゲームでは、チートによって銃のバレルを盗まれたり、ゲームやPCを強制終了させられたりする。Counter-Strikeの競技モードは、ゲーム内のチート広告欄のように機能している。Valorantは侵襲的なアンチチートによって他のゲームより優れているが、ファンが主張するほどクリーンではない。Counter-Strikeのプライベートマッチメイキング業界は、アンチチートとプロレベルのプレイを約束として築かれている