私は時々プロセスモニターソフトウェアのデバッグやオンラインゲームにも使用できます。これらのゲームの中にはバトルアイアンチチート ソフトウェアは、システムで 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
標準ドライバーはサービスであり、 および を介してそれらを制御できますnet
。sc
(たとえば、 を見てください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
答え3
問題のあるPROCMON23.SYS
フィルター ドライバーは、ProcMon の実行時にインストールされます。その時点でファイル
C:\Windows\system32\Drivers\PROCMON23.SYS
が存在しない場合は、ProcMon が書き込みます。PROCMON23.SYS
ファイル自体は、ProcMon の実行可能ファイル内にバイナリ リソースとして含まれています。
実行中のすべてのフィルター ドライバーを一覧表示するには、次の操作を行います。
fltmc filters
私のコンピュータでは次のようになります:
ご覧のとおり、私の Process Monitor のバージョンはあなたのものよりも新しいです (23 ではなく 24)。
通常、フィルター ドライバーは次のようなコマンドでアンインストールできます。
Fltmc unload PROCMON24
ただし、この場合は、管理者特権のコマンド プロンプトで次のようになります。
アンロード エラー 0x801f0010 は、アンロード ルーチンを持たないミニ フィルター ドライバーでよく発生するエラーです。
結論: PROCMON23.SYS およびそれ以降の PROCMON24.SYS はプログラムが不適切です。開発者は、誰かがこのドライバーをアンロードしたいと望むことを予見しておらず、必要なルーチンを組み込んでいません。したがって、このドライバーはアンロードできません。
残念なことに、これを解消するには再起動が必要であり、他の方法では解決できません。唯一の手段は、開発者に苦情を言うことです。
答え4
どうやらこれはカーネルにフックするようです。これは、他の理由 (PC のクラッシュ) で再起動しないようにするために必要です (カーネル)。
これは、なぜ再起動する必要があるのかを説明します...それがカーネルから切り離す唯一の方法です。