見出し画像

Windows 10/Windows 11 において VBS&HVCI(コア分離,メモリ整合性)の互換性に問題あるドライバが表示されない際の対応方法

はじめに

この記事はあくまで備忘録です
乱文乱筆ご容赦ください
執筆時点でのバージョン (Windows 10 22H2 及び Windows 11 23H2) で検証しています
操作画面についてはWindows 11をベースにしています。
※作業中にSSは撮影していないため参考画像としてください

なお、VBS (Virtualization Based Security) とHVCI (Hypervisor-Enforced Code Integrity) に付随する機能のひとつであるメモリ整合性 (Memory integrity) に関してはレガシーすぎるプロセッサ※では、ソフトウェアエミュレーションで動作します
そのため、大幅にプロセッサ性能を制限する可能性があるとされています

※Intel Kaby lake より前 AMD Zen2 より前
(モードベース制御非対応プロセッサ)


環境及び前提条件

・Windows 10 22H2
・Windows 11 23H2
・OSインボックスドライバでないこと
※この場合おそらく追加処置が必要ですが本記事では触れていません
・HWとSWの仮想化機能(HyperV,VT-d,VT-x,AMDVなど)有効なこと
・Intel HD Graphics Driverが対応しない世代 (Ivy Bridge以前?)は対象外
さすがに使うのやめよう(

現象

・Windows Defender において、「コア分離」内「メモリ整合性」を有効にしようとした際、互換性に関する警告が発生し有効にできない

・互換性のないドライバを表示しようとしても何も表示されない

(通常、互換性に問題がある際は該当のデバイスドライバが表示され、
手動でアンインストールなど実施することで対応ができる)


原因

・Windows 側の問題でGUI上に表示されないため

解決方法

1.使用ツールをDL

・Microsoft のCLIベースのサポートツール「hvciscan」
※初期バージョンはDLL Hijackの脆弱性で公開停止しているため、かならず最新版 (10.0.25884.1000) を利用すること

・「Driver Store Explorer」

2.やり方

1.リンク先より適合arch用をDL

システムディスク (Cドライブなど) 直下などに保存

例としてC直下に配置

2.「ターミナル(PowerShell)」より実行する 

「SHIFT」キー と 「マウス右クリック」で「Power Shellウィンドウをここで開く」

3.ターミナルより実行する

※PowerShellのため先頭に./を付けEnter

./hvciscan_amd64.exe

4.出力結果を確認する

・OKの場合 ⇒ 本記事では対応しません
(HW及びSW仮想化サポートの確認が必要)

HVCI互換性チェックOK

・NGの場合 ⇒ 次項に進む

HVCI互換性チェックNG(11forumより引用)

5.出力結果に記載されたドライバファイル名をメモし、ターミナルを閉じる
画像の例) igdkmd64.sys

6.「Driver Store Explorer」 を起動する

Rapr.exeを起動

読み込み完了後一覧表示される

7.先ほどメモしたデバイスドライバを探しチェックを入れる

(先ほどのsysファイル名を検索するなどで特定できます)
また、このとき該当デバイス上で右クリックし「ファイルの場所を開く」で関係するファイル名をメモ
画像の例) FiiO~

8.「ドライバーを削除」をクリックし、確認画面を出す

9.表示された ”infファイル名” をメモしOKをクリック
「Driver Store Explorer」を閉じる

画像の例) oem83.inf

10.「デバイスマネージャー (devmgmt.msc)」 から先ほどメモしたデバイスを探す

・デバイスが存在する場合 ⇒ デバイスの削除をし次項に進む
※削除後OSにより自動インストールされるデバイスを使用している場合は、デバイスを「無効」か「物理的に外す」などで「読み込まれていない状態」にする
その後、再度手順6から実施し、手順10で状態を確認する
問題なければ手順11に進む

・デバイスが存在しない場合 ⇒ 次項へ進む

11.管理者権限にて「Power Shell」を開く

12.ターミナル内で「pnputil」のドライバ削除コマンドを実行し、正常に削除されたことを確認

・「pnputil」 のドライバ削除構文は以下

pnputil -d (infファイル名)

例として先ほどメモしたドライバinf (oem83.inf) の場合は以下

pnputil -d oem83.inf

実行後、「ドライバーパッケージを削除できませんでした : 指定されたファイルが見つかりません。」のメッセージが表示されればOK

この段階で「接続済みデバイスに対してのドライバ読み込み」と「Driver Storeによるドライバ読み込み」は無効

12.「C:\Windows\System32\drivers」を検索し、メモ済みのドライバファイル (.sysなど) が残っていないか確認、残っていれば削除

※ここまで正常に行えていればドライバは読み込まれていないため、削除は可能なはず

13.「hvciscan」を再度実行し、何も検出されないことを確認

再度スキャン時、drivers以外からゲームなどのアンチハック系が検出されることがあるため、その際は必要に応じて対応する

14. 「Windows Defender」から「コア分離」を有効にする

※有効にできない場合は素直にOS入れなおしたほうがよいかもしれません 

この記事が気に入ったらサポートをしてみませんか?