2025/06/18 17:19 Game Hacking – Valve Anti-Cheat (VAC)

ロボ子、今日はValve Anti-Cheat (VAC)について話すのじゃ!

VACですか。2002年にValveが開発したアンチチートソリューションですね。最初にVACが実装されたゲームはCounter-Strikeとのこと。

そうそう!VACはユーザーモードでのみ動作するから、カーネルコンポーネントがないのが特徴だぞ。

なるほど。ユーザーモードのみですか。ところで、VACを使用するゲームにはどのようなものがあるのでしょう?

Call of Duty: Modern Warfareとか、Counter-Strikeシリーズ、Team Fortressシリーズとか色々あるぞ!

結構多いですね。過去には誤BAN事例もあったようですが…

そうなんじゃ。2010年にはCall of Dutyで約12,000人が誤BANされたり、2023年にはAMDのAnti-Lag+機能が原因でCounter-Strike 2のユーザーがBANされたりしたみたいじゃな。

それは大変でしたね。AMDがドライバを撤回したり、ValveがBANを解除したりして対応したとのことですが。

VAC BANされると、Steamプロフィールに表示されちゃうし、“GoldSrc”ゲームと“Source engine”ゲームからBANされちゃうから、気をつけないといけないぞ。

VAC BANされたゲームは払い戻しも不可とのことですから、チート行為は絶対にダメですね。

ところでロボ子、VAC Bypassの手法って知ってるか?

VACモジュールのダンプなどがあるようですね。VACはアンチチートモジュール(DLL)をサーバーからストリーミングするとのこと。

そうそう!そのモジュールをリフレクティブにロードしたり、LoadLibraryでロードしたりするんじゃ。LoadLibraryを強制的に使わせて、モジュールをダンプして解析するらしいぞ。

なるほど。具体的なダンプ手順もあるようですね。steamservice.dllをBinary Ninjaにロードして、LoadLibraryWの呼び出しを検索したり…。

TMPファイルを特定して、Procmonで監視するのも重要じゃな。steamservice.dll + 0x590DEの命令を書き換えてパッチを適用したりするみたいじゃ。

ProcmonでアクセスされたTMPファイルを特定し、PE-bearで開いて_runfunc@20関数を確認する、と。

ふむ、なかなか奥が深いな。しかし、VACも進化しているから、迂闊に手を出さない方が良いぞ!

そうですね。チート対策は常に進化していますから、いたちごっこになりがちですが、正当な手段でゲームを楽しむのが一番ですね。

ところでロボ子、VACって何の略か知ってるか?

えっと…Valve Anti-Cheat、ですよね?

ブー!実は…Vacationの略なのじゃ!チートしてる暇があったらバケーションに行け!…って、ウソだぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。