Wie kann ich den Process Monitor-Treiber ohne Neustart entladen?

1706
James

Manchmal verwende ich Process Monitor zum Debuggen von Software und spiele auch Online-Spiele. Einige dieser Spiele verwenden eine Anti-Cheat-Software von BattlEye, die die Ausführung des Spiels nach dem Starten von Process Monitor auf dem System nicht zulässt. Dies wird im Protokoll angezeigt:

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. 

Der Treiber bleibt nach dem Schließen von Process Monitor geladen und es scheint keine Option zum Entladen zu geben.

Einige andere Fragen enthalten Antworten zum Entladen von Treibern mit net stopoder sc stop. Der ProcMon-Treiber ist jedoch kein Dienst, daher funktioniert dies nicht. Ich habe auch versucht, im Geräte-Manager zu suchen und die Option "Ausgeblendete Geräte anzeigen" zu aktivieren, aber keiner der Einträge erscheint in Bezug auf ProcMon. Ich kann die Treiberdatei nicht löschen, da sie im Dateisystem nicht vorhanden ist. ProcMon speichert die Datei in ihrer ausführbaren Datei und extrahiert sie bei Bedarf.

Meine Frage ist kein Duplikat dieser Frage, was ein ähnliches Problem betrifft, bei dem der Treiber nach einem Neustart bestehen bleibt. Meine Frage betrifft das Entladen des Treibers ohne Neustart.

1

3 Antworten auf die Frage

2
grawity

Standardtreiber sind Dienste und können über netund gesteuert werden sc. (Sehen Sie sich beispielsweise an sc query beep: Das Beenden des Pieptreibers ist eine gängige Methode, um den internen PC-Lautsprecher abzuschalten.)

In früheren Versionen von Process Monitor (wahrscheinlich pre-2.3, wenn es Windows XP Unterstützung hatte immer noch), wäre es ein „Legacy“ Gerätetreiber installieren, war über sichtbar sc, Geräte - Manager, usw.


Aktuelle Versionen von Process Monitor scheinen die Treiber- / Dienstkonfiguration unmittelbar nach dem Start des Treibers aus der Registrierung zu entfernen. Sie können dies sehen, indem Sie ProcMon mit sich selbst überwachen . Es ist möglich, den Dienst mit Typ 2 (Kernel FS-Treiber) manuell erneut hinzuzufügen, und er wird sofort als bereits ausgeführt angezeigt.

Der Dienst meldet jedoch auch "NOT_STOPPABLE" und lehnt alle Stoppversuche ab.

Darüber hinaus registriert sich PROCMON23 jetzt über den Filtermanager (FltDrv) als Minifilter- Treiber für ein Dateisystem . Sie können es in der Ausgabe von sehen fltmc, aber der Versuch, es extern zu entladen, schlägt ebenfalls fehl (möglicherweise weil der Treiber keine Entladeroutine hat):

C: \ WINDOWS \ system32> fltmc  Filtername Anzahl Instanzen Höhenrahmen ------------------------------ ------------- ------- ----- ----- PROCMON23 0 385200 0 WdFilter 4 328010 0 Storqosflt 0 244000 0 wcifs 1 189900 0 ...  C: \ WINDOWS \ system32> fltmc entlädt PROCMON23  Entladen fehlgeschlagen mit Fehler: 0x801f0010 Trennen Sie den Filter zu diesem Zeitpunkt noch nicht vom Datenträger. 

Da das "offizielle" CLI-Tool den Filter nicht aus FltMgr entfernen kann und FltMgr selbst ein "kritischer" Treiber ist, der nicht ohne Neustart neu gestartet werden kann, scheint es nicht möglich zu sein, PROCMON23 oder PROCMON24 zu entladen.


Aber das Interessanteste: Nachdem ich die obigen Überprüfungen mit procmon 3.40 durchgeführt habe, habe ich festgestellt, dass die neueste Version auf der Website 3.50 ist (die einen neueren PROCMON24-Treiber verwendet). Beim Starten der neuen Version wurde mir mitgeteilt, dass eine ältere Version des Treibers bereits auf dem System vorhanden war und ich einen Neustart durchführen sollte.

Wenn also ProcMon selbst keinen eigenen Treiber entladen kann, ohne dass ein Neustart erforderlich ist, können Sie davon ausgehen, dass Sie ihn auch nicht entladen können.

In Anbetracht dessen, wie viel erfolgloses Suchen ich bereits getan habe, sieht dies immer mehr nach der Antwort aus. Ich werde jedoch eine Weile warten, bevor ich das akzeptiere, nur für den Fall, dass jemand einen Weg kennt und zufällig dies ohne akzeptierte Antworten sieht und einen Blick darauf stellt. James vor 5 Jahren 0
0
harrymc

Der problematische PROCMON23.SYSFiltertreiber wird von ProcMon installiert, wenn er ausgeführt wird. Wenn die Datei C:\Windows\system32\Drivers\PROCMON23.SYS zu diesem Zeitpunkt nicht vorhanden ist, schreibt ProcMon sie. Die PROCMON23.SYSDatei selbst ist als binäre Ressource in der ausführbaren Datei von ProcMon enthalten.

Sie können alle aktiven Filtertreiber auflisten, indem Sie:

fltmc filters 

und auf meinem Computer gibt es:

Bild

Wie Sie sehen, ist meine Version von Process Monitor neuer als Ihre (24 statt 23).

Normalerweise kann ein Filtertreiber mit einem Befehl wie dem folgenden deinstalliert werden:

Fltmc unload PROCMON24 

In diesem Fall ergibt sich jedoch eine erhöhte Eingabeaufforderung:

image2

Entladefehler 0x801f0010 ist der typische Fehler für einen Minifiltertreiber, der keine Entladeroutine hat.

Fazit: PROCMON23.SYS und die späteren PROCMON24.SYS sind schlecht programmiert. Der Entwickler hat nicht vorausgesehen, dass irgendjemand jemals seinen Fahrer entladen möchte, und hat nicht die notwendige Routine darin aufgenommen. Daher kann dieser Treiber nicht entladen werden.

Die schlechte Nachricht für Sie ist, dass ein Neustart erforderlich ist, um sie zu beseitigen. Nichts anderes wird die Aufgabe erfüllen. Sie können sich nur an den Entwickler wenden.

Wie beim normalen Schließen von ProcMon funktioniert dies nicht. Der Treiber wird weiterhin gemäß Battleye und [DriverView] von NirSoft (https://www.nirsoft.net/utils/driverview.html) geladen. James vor 5 Jahren 0
Dies schließt sowohl Procmon.exe als auch Procmon64.exe. Es scheint, als hätten Sie die Startprotokollierung aktiviert. Machen Sie dies rückgängig und starten Sie den Computer neu. harrymc vor 5 Jahren 0
Nein, die Startprotokollierung ist nicht aktiviert. Ich habe eine VM doppelt eingecheckt. Wenn Sie Process Monitor auf ein neues System herunterladen und ausführen und dieses normalerweise oder mit dem Flag / terminate schließen, wird der Treiber nicht entladen. James vor 5 Jahren 0
Versuchen Sie Folgendes: Starten Sie im abgesicherten Modus, deinstallieren Sie Process Monitor, und benennen Sie `\ C: \ Windows \ system32 \ Drivers \ PROCMON23.SYS` um, falls noch vorhanden, und starten Sie dann neu. Wird das los? harrymc vor 5 Jahren 0
Es scheint auch, dass Sie nicht die neueste Version verwenden. harrymc vor 5 Jahren 0
Es sieht so aus, als würde ProcMon `PROCMON23.SYS` installieren. Ich denke, Sie sollten in der Lage sein, die obige Methode zu verwenden, um es loszuwerden, aber es wird wieder angezeigt, wenn Sie ProcMon starten, und sobald es installiert ist, ist es ein Schmerz, es loszuwerden. harrymc vor 5 Jahren 0
Ein regulärer Neustart reicht aus, um den Treiber zu entladen, da ProcMon nur den Treiber lädt, den er startet. Ich versuche jedoch, einen Weg zu finden, um es ohne Neustart zu entladen. James vor 5 Jahren 0
Sie könnten PROCMON23.SYS durch eine harmlose Datei mit der obigen Methode ersetzen, da Procmon wahrscheinlich nur prüft, ob es vorhanden ist, aber ProcMon ist dann höchstwahrscheinlich nicht funktionsfähig. harrymc vor 5 Jahren 0
Ich habe noch etwas recherchiert und meine Antwort umgeschrieben. harrymc vor 5 Jahren 0
-1
Leptoid

Es scheint, als hinge es in den Kernel, was Sie (den Kernel) brauchen, um einen Neustart aus anderen Gründen zu verhindern (abgestürzter PC).

Abhängigkeitswanderer

Dies würde erklären, warum Sie einen Neustart durchführen müssen. Dies ist die einzige Möglichkeit, den Kernel zu lösen.