Street Fighter Vコンピューターゲームドライバーは、組み込みのWindows保護メカニズムを無効にします

ゲームファイルの整合性とこれらのプレーヤーの正当性を保護するために使用されるコンピューターゲームのドライバーは珍しくありません。 以前、たとえばnProtect GameGuardBlizzard Lockdownなど、そのような最も有名なドライバーのレビューがいくつか公開されました。 このようなドライバーは、WindowsカーネルレベルでAPI呼び出しをインターセプトし、プロセスの仮想アドレススペースを常にスキャンし、レジストリへのアクセスを監視するなどの目的で使用できます。







数日前、Capcom社はユーザーに、アンチハックドライバー(Capcom.sys)の更新について通知しました。これは、ゲームファイルの整合性を制御し、不正行為を防ぐためにゲームプロセスのメモリ侵害を防ぐために使用されます。 ただし、この更新プログラムのユーザーは、ドライバー機能の1つに不快な驚きを感じました。 SMEPカーネルの保護対策を無効にし、ユーザーモードから取得したポインターに従ってコードを実行できます。



SMEP(Supervisor Mode Execution Prevention)はすでにかなりよく知られた尺度であり、いくつかのレビューが書かれています。 マイクロプロセッサとOS(Windows 8以降)の両方からのサポートが必要です。 SMEPは、カーネルモード(RIng 0)でユーザーコード実行操作(リング3)をブロックするために使用されます。 どんなに奇妙に見えても(カーネルモードコードは最も特権があり、システム内のすべてのメモリにアクセスできる)、SMEPは、仮想アドレス空間のユーザー部分にあるコードブロックに制御を転送するLPEエクスプロイトのアクティビティをブロックするための優れた手段です。



Windowsドライバーは、IOCTLと呼ばれる特別なインターフェイスを使用して、リング3からクライアントと対話するように構成されています。 ドライバーは、Windowsカーネルに特別なハンドラーを登録します。これは、既知のAPI関数DeviceIoControlによってユーザーモードから使用できます。 このAPIを使用する場合、アプリケーションはドライバーに必要な関数のコード、引数のセットを渡し、引数を渡し結果を取得するための入力および出力メモリバッファーを示します。



新しいCapcom.sys更新プログラム 、IOCTLインターフェイスと、コード0xAA012044、0xAA013044の2つの機能を使用します。 これらの関数の特徴は、ユーザーモードクライアントがそこから受け取ったポインターを使用してカーネルモードでコードを実行できることであり、それ以前はSMEPを無効にします。 関数が実行された後、CR4レジスタの対応するビットを設定することにより、SMEPが再びオンになります。 明らかに、無効化は、ユーザーモードからカーネルモードでコードを実行するために使用されます。





図 SMEPを無効にしてIOCTL要求で指定された機能を実行するCapcom.sys関数。



明らかに、コンピューターゲームのドライバーはデジタル署名されており、ユーザーモードからアクセスするための潜在的に危険なインターフェイスを提供するため、システムにバックドアを作成します。 サードパーティのコードはこのドライバーを使用して、リング0でコードを実行できます。



カプコンは、この脆弱性をカバーするゲームアップデートをすでにリリースしています。



Street Fighter VのPCバージョンに追加されたセキュリティ対策をロールバック中です。PCバージョンへのロールバックプロセスの後、9月の更新からのすべての新しいコンテンツはプレイヤーが引き続き利用できます。 ご不便をおかけしましたことをおPCび申し上げます。また、PCロールバックソリューションの時間枠については、近日中に更新される予定です。



All Articles