再起動せずに Process Monitor ドライバーをアンロードするにはどうすればよいですか?

再起動せずに Process Monitor ドライバーをアンロードするにはどうすればよいですか?

私は時々プロセスモニターソフトウェアのデバッグやオンラインゲームにも使用できます。これらのゲームの中にはバトルアイアンチチート ソフトウェアは、システムで Process Monitor が起動された後にゲームの実行を拒否し、ログに次のように表示します。

08:06:46: Starting BattlEye Service...

08:06:49: Launching game...
08:07:07: Disallowed driver: "\??\C:\Windows\system32\Drivers\PROCMON23.SYS". Please unload it or reboot your system.

Process Monitor を閉じた後もドライバーはロードされたままになり、アンロードするオプションはないようです。

net stopまたはを使用してドライバーをアンロードすることに関する回答が他のいくつかの質問にありますsc stopが、ProcMon ドライバーはサービスではないため、これは機能しません。デバイス マネージャーで「非表示のデバイスの表示」を有効にして確認してみましたが、ProcMon に関連するエントリは表示されません。ドライバー ファイルは実際にはファイル システムに存在しないため、削除できません。ProcMon は実行可能ファイルにファイルを保存し、必要に応じて抽出します。

私の質問は重複したものではありませんこの質問これは、再起動後もドライバーが存続するという同様の問題に関するものです。私の質問は、再起動せずにドライバーをアンロードすることについてです。

答え1

標準ドライバーサービスであり、 および を介してそれらを制御できますnetsc(たとえば、 を見てくださいsc query beep。「ビープ」ドライバーを停止することは、PC の内部スピーカーをシャットダウンする一般的な方法です。)

以前のバージョンのProcess Monitor(おそらくWindows XPをサポートしていた2.3以前)では、だったsc、デバイス マネージャーなどから確認できます。


現在のバージョンのプロセスモニターでは、ドライバーの起動直後にレジストリからドライバー/サービス構成が削除されるようです。これは次のように確認できます。ProcMonを自身で監視するタイプ 2 (カーネル FS ドライバー) では、サービスを手動で再度追加することが可能で、そのサービスはすぐに実行中として表示されます。

ただし、サービスは「NOT_STOPPABLE」も報告し、停止の試行を拒否します。

さらに、PROCMON23は、ファイルシステムミニフィルターフィルター マネージャー (FltDrv) を介してドライバーをアンロードします。 の出力で確認できますfltmcが、外部からアンロードしようとしても失敗します (ドライバーにアンロード ルーチンがないためと考えられます)。

C:\WINDOWS\system32>fltmc

フィルター名 インスタンス数 高度 フレーム
------------------------------ ------------- ------------ -----
プロクモン23 0 385200 0
Wdフィルター 4 328010 0
storqosflt 0 244000 0
1 189900 ...
...

C:\WINDOWS\system32>fltmc アンロード PROCMON23

アンロードに失敗しました。エラー: 0x801f0010
この時点ではフィルターをボリュームから取り外さないでください。

「公式」CLIツールはFltMgrからフィルターを削除できないため、FltMgr自体再起動しないと再起動できない「重要な」ドライバーであるため、PROCMON23 または PROCMON24 をアンロードする方法はないようです。


しかし、最も興味深いのは、procmon 3.40 で上記のチェックを行った後、Web サイトの最新バージョンは 3.50 (新しい PROCMON24 ドライバーを使用) であることがわかりました。新しいバージョンを起動すると、古いバージョンのドライバーがすでにシステム上にあるため、再起動する必要があることが通知されました。

つまりProcMon自体再起動を必要とせずに独自のドライバーをアンロードすることはできないので、これもアンロードできないと想定しても問題ないと思います。

答え2

に加えて素晴らしい答えによるユーザー1686結論としては、アンロードする方法はないということですが、Windows 10 で通常の再起動を行っても効果がないということも付け加えておきます。最近の Windows 10 ではメモリの一部が保持され、起動時に再ロードされるため、再起動後もドライバーがメモリ内に残ってしまうのです。

これを回避するには、管理者として次のコマンドを実行して再起動します。

shutdown /r /f /t 0

これにより、適切な再起動が実行されます。fltmc管理者として実行して、ドライバーが存在しないことを確認します。

答え3

問題のあるPROCMON23.SYSフィルター ドライバーは、ProcMon の実行時にインストールされます。その時点でファイル C:\Windows\system32\Drivers\PROCMON23.SYS が存在しない場合は、ProcMon が書き込みます。PROCMON23.SYSファイル自体は、ProcMon の実行可能ファイル内にバイナリ リソースとして含まれています。

実行中のすべてのフィルター ドライバーを一覧表示するには、次の操作を行います。

fltmc filters

私のコンピュータでは次のようになります:

画像

ご覧のとおり、私の Process Monitor のバージョンはあなたのものよりも新しいです (23 ではなく 24)。

通常、フィルター ドライバーは次のようなコマンドでアンインストールできます。

Fltmc unload PROCMON24

ただし、この場合は、管理者特権のコマンド プロンプトで次のようになります。

画像2

アンロード エラー 0x801f0010 は、アンロード ルーチンを持たないミニ フィルター ドライバーでよく発生するエラーです。

結論: PROCMON23.SYS およびそれ以降の PROCMON24.SYS はプログラムが不適切です。開発者は、誰かがこのドライバーをアンロードしたいと望むことを予見しておらず、必要なルーチンを組み込んでいません。したがって、このドライバーはアンロードできません。

残念なことに、これを解消するには再起動が必要であり、他の方法では解決できません。唯一の手段は、開発者に苦情を言うことです。

答え4

どうやらこれはカーネルにフックするようです。これは、他の理由 (PC のクラッシュ) で再起動しないようにするために必要です (カーネル)。

依存関係ウォーカー

これは、なぜ再起動する必要があるのか​​を説明します...それがカーネルから切り離す唯一の方法です。

関連情報