Prozessmonitor Russische Version. Process Monitor oder wie man die Software als Benutzer zum Laufen bringt. Vor- und Nachteile des Programms

Ein Programm zum Verfolgen von Benutzeraktivitäten auf anderen Computern in lokales Netzwerk. Die Anwendung wird häufig zur Überwachung von Mitarbeitern verwendet.

Was Sie über den Aktivitätsmonitor wissen müssen

Das leistungsfähiges Werkzeug zur Fernüberwachung. Mit der Anwendung können Sie die Aktivitäten von Benutzern auf Remote-Computern in Echtzeit überwachen. Besuchte Seiten anzeigen, Liste prüfen laufende Programme und überwachen Sie das Bild auf dem Display, und gleichzeitig können Sie mehrere PCs gleichzeitig überwachen. Mit diesem Dienstprogramm können Sie die Korrespondenz einlesen Email und Messenger installiert. Die Beobachtung erfolgt in Stealth-Modus, gibt es eine Funktion zum Protokollieren von Tastenanschlägen.

Alle zusammenfassenden Informationen werden über ein verschlüsseltes Protokoll an den Computer des Administrators übertragen und sicher in einer einzigen Datenbank gespeichert. Wenn Sie möchten, können Sie Offline-Berichte anzeigen.

Während der Installation müssen Sie die Version der zu installierenden Anwendung auswählen – die Serverversion wird auf dem Computer des Administrators installiert, die Clientversion wird auf dem Computer des Endbenutzers installiert.

Das Programm richtet sich an gewerbliche Kunden, es wird oft als verwendet zusätzliches Werkzeug B. zur Fernüberwachung von Mitarbeitern oder bei der Lecksuche vertrauliche Informationen. Sie können die Funktionen des Aktivitätsmonitors eine Woche lang kostenlos testen Vollversion beginnt bei 190 $ (Lizenz für drei PCs).

Kurz und deutlich:

  • Online-Überwachung eines entfernten PCs;
  • integrierter Keylogger;
  • geplante Überwachung;
  • Screenshots erstellen;
  • Sichere Protokollkommunikation.

Es wurde bereits eine Menge Material zum Process Monitor-Programm bereitgestellt, und das Studium der Grundlagen der Funktionsweise des Dienstprogramms war auch für einen unvorbereiteten Benutzer immer verfügbar. Trotzdem habe ich persönlich viele Aspekte der Arbeit nicht ganz verstanden (und einige verstehe ich immer noch nicht :), also habe ich beschlossen, eine weitere Notiz darüber zu schreiben, sehr nützliches Dienstprogramm, damit Sie den Artikel später als eine Art Hinweis verwenden können. Wenn wir ein beliebiges Betriebssystem unter dem Gesichtspunkt der Verallgemeinerung betrachten, können wir es bedingt in Code- / Datenblöcke unterscheiden, die nach bestimmten Mustern miteinander interagieren. Um den uns vertrauten Begriffen näher zu kommen, betrachten wir den erwähnten Block als einen Prozess, der sowohl Code als auch Daten kombiniert, um ein bestimmtes Problem zu lösen. Somit bildet die Interaktion zwischen solchen Prozessen (mit einigen Ausnahmen) das Konzept des Betriebs des Betriebssystems. Während des Betriebs des Betriebssystems läuft eine große Anzahl von Prozessen darin, und der Zweck jedes dieser Prozesse kann in einem ziemlich weiten Bereich variieren.

Jeder Prozess im Betriebssystem bestimmt durch eine Kombination seiner eigenen Operationen und der Ergebnisse ihrer Ausführung tatsächlich die Prägung der Aktivität des Systems zu der einen oder anderen Zeit. Aber wie wir aus der Theorie wissen, sind die Prozesse selbst nur Container für Threads (Threads), die direkt die gesamte Rechenarbeit erledigen. Es ist klar, dass Threads Code sind, eine Reihe von Maschinenanweisungen, die vom Prozessor ausgeführt werden, aber dies ist eine ziemlich niedrige Wahrnehmung. Wenn in Betrieb Windows-Strukturen, dann enthalten die Threads zwar noch Maschinencode, jedoch ist die gesamte Funktionalität des Betriebssystems durch Aufrufe der Funktionen verschiedener Systembibliotheken und Treiberaufrufe verfügbar, sodass die Threads neben einfachen arithmetisch-logischen Operationen mit verschiedenen Windows interagieren Subsysteme: virtueller Speicher, Dateisystem, Registrierung, Hardwarekomponenten und viele andere. Die Kommunikation zwischen Prozessen ist so intensiv, dass zu jeder Zeit Tausende solcher Operationen im System durchgeführt werden. Dementsprechend wäre es für uns in der Realität von Windows interessant, die Interaktion von Prozessen mit bestimmten Komponenten des Betriebssystems auf der Ebene der Funktionen und der Ergebnisse ihrer Ausführung zu beobachten, da diese Aktivitätsebene völlig ausreichend ist um die meisten Probleme zu lösen. Solche Informationen wären für uns sowohl vom Standpunkt eines reinen Forschungsinteresses an der Untersuchung von Algorithmen als auch vom Standpunkt der Suche nach Lösungen für bestimmte Probleme, die im Laufe der Arbeit auftreten, äußerst nützlich. Aber wir brauchen ein Tool, das solche detaillierten Informationen liefern kann, weil wir viel tiefer in die Kommunikation zwischen Prozessen eintauchen müssen als auf der Ebene der integrierten Tools, um zu verstehen, was Prozesse genau tun. Etwas Ähnliches bietet uns ein Tool namens Prozessmonitor, das zur Klasse der Tools mit erweiterter Funktionalität gehört, und das Thema unseres heutigen Artikels sein wird.
Prozessmonitor- ein Programm zur Überwachung der Aktivität von Prozessen im Betriebssystem, mit dem Sie im Betriebsprotokollierungsmodus die Aktivität von Prozessen in Bezug auf Betriebssystemsubsysteme wie Dateisystem, Registrierung und Netzwerk verfolgen können. Ermöglicht es Ihnen, die Menge an CPU-Zeit zu schätzen, die durch die Ausführung von Threads innerhalb von Prozessen verbraucht wird.
Process Monitor führt eine Echtzeitüberwachung für die folgenden Ereignisklassen durch:

  • Dateisystem: Erstellen (Öffnen) / Schließen / Lesen / Schreiben / Löschen von Dateisystemelementen: Dateien, Verzeichnisse, Attribute, Inhalt.
  • Registrierung: Erstellen/Lesen/Schreiben/Aufzählen/Löschen von Registrierungselementen: Zweige, Schlüssel, Werte.
  • Netzwerk: Verbindung aufbauen, Daten übertragen, Verbindung beenden. Informationen über die Quelle/den Empfänger des TCP/UDP-Verkehrs. Allgemeine Informationen zu Protokollen, Paketen. Die übermittelten Daten selbst werden nicht erfasst.
  • Prozess/Thread: Erstellen Sie einen Prozess, erstellen Sie einen Thread innerhalb eines Prozesses, beenden Sie einen Thread/Prozess. genaue Information Informationen zum Prozess (Pfad, Befehlszeile, Benutzer-/Sitzungs-ID), Starten/Herunterfahren, Laden von Bildern (Bibliotheken/Treiber), Ausführungsstapel.
  • Profilerstellung: Eine spezielle Klasse von Ereignissen, die aufgezeichnet werden, um die CPU-Zeit zu verfolgen, die von jedem Prozess verwendet wird. Speicherauslastung verarbeiten.

Die wichtigsten, wahrscheinlichsten Szenarien für die Verwendung von Process Monitor fallen mir sofort ein:

  • In welchen bestimmten Registrierungsschlüsseln speichert dieses oder jenes Programm seine Einstellungen?
  • Welche Operationen führt der Prozess beim Start, während des Betriebs und in der Abschlussphase aus?
  • Wem gehören bestimmte Dateien? Wie oft kontaktiert der Besitzer sie?
  • Welcher Prozess greift auf externe Knoten des Netzwerks zu?
  • Welcher Prozess verlangsamt das Laden des Betriebssystems?

Mit Process Monitor erhalten Sie eine Antwort auf die Frage: Welche Aktionen führt ein bestimmter Prozess im System aus.

Aber im Gegensatz zu Tools wie Process Explorer ist dies kein Echtzeit-Dienstprogramm, mit dem Sie unterwegs mit Prozessen interagieren, Handles schließen, Prozesse beenden und andere ähnliche Aktionen ausführen können, sondern ein globales Protokoll, das aus Ereignissen besteht, die im Betriebssystem. Das Schlüsselwort im vorherigen Satz war "detailliert", weil es nicht die Ereignisse meint, die wir beispielsweise im Ereignisprotokoll sehen, sondern untergeordnete Ereignisse, die bei einem bestimmten Satz von API-Funktionen einiger Betriebssysteme auftreten Komponenten. Diese und einige andere einzigartige Funktionen machen Process Monitor zu einem nahezu unverzichtbaren Tool für die Fehlerbehebung und das Auffinden der Ursachen verdächtiger Aktivitäten im System.
Aber beeilen Sie sich nicht, fasziniert zu sein, denn jedes Fass Honig hat immer seinen eigenen Wermutstropfen. Im Fall von Process Monitor gibt es also einige "Nuancen". Sie sollten Process Monitor nicht als eine Art Zauberstab für alle Fälle betrachten, da er nicht alles „sieht“. Zum Beispiel verfolgt es nicht die Bewegung des Mauszeigers, das Ziehen von Fenstern, es zeigt nicht den Inhalt von Netzwerkverkehrspaketen, es zeigt nicht die ganze Vielfalt der vom Programm aufgerufenen Funktionen, und das ist weit davon entfernt vollständige Liste Dinge, die Process Monitor nicht kann. Wie in jedem Geschäft mit der Diagnose von Betriebssystemproblemen bietet ein solches Toolkit grob gesagt einen begrenzten Satz von Funktionen und Operationen des Threads, der Raum für Aktivitäten lässt und unabhängige Schlussfolgerungen und manchmal recht tiefes Wissen des Spezialisten erfordert, die die Grundlage bilden jeder Analyse. Ich maße mir nicht an, zu behaupten, dass absolut alle, die mit diagnostiziert wurden Verfahren Monitorprobleme erfordern hohes Level Kenntnisse der Betriebssystemarchitektur, aber das kommt nicht so selten vor. Beispiel aus Tierwelt: Einmal gab es einen Fehler mit Outlook 2010, als Kompatibilitätsoptionen in den Eigenschaften des Programms outlook.exe eingestellt wurden, was verhinderte, dass das Programm mit einem Startfehler gestartet wurde: "Standard-E-Mail-Ordner konnten nicht geöffnet werden. Nachrichtenspeicher konnte nicht geöffnet werden. " Spur dieses Problem Mit dem Process Monitor-Dienstprogramm können Sie das, aber Sie müssen wissen, wonach Sie in einem riesigen Stapel von Nachrichten aus dem Outlook-Prozess suchen müssen. In diesem Fall war es notwendig, beim Lesen des AppCompatFlags-Schlüssels nach den Flags WINSRV08SP1 und RUNASADMIN zu suchen, was an sich darauf hinweist, dass wir uns manchmal vorstellen müssen, was wir finden möchten. Idealerweise (und das Ideal ist unerreichbar) wäre es schön, sich vorzustellen, wie genau sich das Profil eines im Kompatibilitätsmodus geladenen Programms auf der Ebene der generierten Ereignisse in Bezug auf eine typische Anwendungslast ändert. Letztendlich musste man verstehen, warum Mail-Client Benutzerkonfiguration konnte nicht geladen werden. Natürlich ist dieses spezielle Beispiel vielleicht nicht so bezeichnend, weil es ziemlich kompliziert ist und es sinnvoller wäre, andere Mittel zu verwenden. Ich möchte nur darauf aufmerksam machen, dass Process Monitor kein Debugger ist und es nicht abfangen kann die Stelle, an der die Fensteranzeigefunktion mit einem Fehler aufgerufen wird, wird nicht in der Lage sein, die Logik der Operation einer bestimmten internen Funktion zu durchdringen, wird nicht den Status von Registern, Speicherbereichen und anderen für den Prozess wichtigen Strukturen anzeigen. Manchmal gibt es kein sichtbares Ergebnis über den fehlenden Zugriff, daher enthalten die gesammelten Informationen manchmal implizit eine Beschreibung des Problems, und die von Process Monitor erhaltenen Ergebnisse müssen überdacht werden. Gelegentlich gibt es Fälle, in denen es funktioniert Prozessfähigkeiten Monitor" reicht einfach nicht aus, um dem Problem auf den Grund zu gehen, aber das schreit nicht nach Werten dieses Werkzeug, da Sie in den meisten Fällen schnell zur Ursache des Fehlers gelangen können. Nun, Sie werden nicht für jeden Fehler sofort den Debugger übernehmen und stundenlang nebenbei versuchen, den Algorithmus des ausgefallenen Moduls zu studieren? .. obwohl:)
Das Process Monitor-Dienstprogramm enthält die Funktionen früherer Sysinternals-Programme, des Regmon-Registrierungszugriffsmonitors und des Filemon-Dateisystemzugriffsmonitors, die schon lange von der Bildfläche verschwunden sind. Zusätzlich zu allem kann Process Monitor das gesamte Ereignisprotokoll in einer Datei mit einer Größe von bis zu 1 Gigabyte speichern.

Wie es funktioniert

Bei der Überwachung der Aktivität von Process Monitor wurde ein interessantes Feature aufgedeckt, es stellte sich heraus, dass das Programm einen eigenen Kernel-Modus-Treiber verwendet (aber was ist mit der Signatur? Und die Signatur stammt von Symantec). Auf einem 32-Bit-System verwendet Process Monitor einen 32-Bit-Filtertreiber namens procmon23.sys sowohl während der Laufzeit des ausführbaren Abbilds selbst als auch während der Boot-Phase des Betriebssystems (wenn die Option Enable Boot Logging aktiviert ist). Aber außer dem ausführbaren procmon.exe-Image selbst gibt es keine anderen Binärdateien im Arbeitsverzeichnis der Anwendung, richtig? Tatsache ist, dass der Treiber im Hauptteil des ausführbaren Hauptmoduls procmon.exe gepackt ist. Wenn Sie ein beliebiges Tool zum Arbeiten mit PE-Dateiressourcen verwenden, können Sie sicherstellen, dass der procmon23.sys-Treiber in der ausführbaren Datei in der RCDRIVERNT-Ressource im BINRES-Verzeichnis des Ressourcenabschnitts enthalten ist, d. h. er ist Teil der Hauptdatei :

Auf einem 64-Bit-System dekomprimiert Process Monitor beim Start in das temporäre Verzeichnis %TEMP% versteckte Datei mit dem Namen Procmon64.exe . Das Bild procmon64.exe ist in der BINRES-Verzeichnisressource 1308 im Ressourcenabschnitt der Hauptdatei procmon.exe enthalten. Aber bereits in Procmon64.exe selbst, im BINRES-Abschnitt des Ressourcenabschnitts, gibt es einen 64-Bit-Treiber, der während des Betriebs verwendet wird.

Der procmon23.sys-Treiber kann auch als Boot-Modus-Treiber fungieren. Wenn der Benutzer die Option Startprotokollierung aktivieren aktiviert, kopiert Process Monitor den Treiber in den Ordner %SystemRoot%\System32\Drivers und schreibt ihn in den Registrierungsschlüssel HKLM\SYSTEM\CurrentControlSet\Services mit dem Parameterwert Start = 0, der angibt, dass der Treiber in der Ausführungsphase von Winload.exe geladen wird, wenn das Betriebssystem startet.

Es scheint, dass alle von Process Monitor überwachten Ereignisse diesen Filtertreiber durchlaufen. Darüber hinaus verwendet Process Monitor Technologie Ereignisspuren(ETW, Event Tracing for Windows), zumindest für die Überwachung von Ereignissen Netzwerkaktivität. Es ist noch nicht ganz klar, wird derselbe Treiber als Controller und Empfänger für ETW verwendet oder ist das ausführbare Modul selbst? Ich möchte Sie daran erinnern, dass ETW eine Art erweiterbares Protokollierungssystem ist, das in das Windows-System integriert ist, auf Kernelebene implementiert ist und (auf Anfrage) ermöglicht, Ereignisse von Benutzermodusanwendungen und Kernelmodusmodulen zu sammeln. Und wie wir wissen, beinhalten fast alle Komponenten des Betriebssystems die Möglichkeit, den laufenden Betrieb zu verfolgen. Es ist klar, dass die Funktionalität von ETW viel breiter ist, es bietet eine Fülle von Informationen zur Funktionsweise: Kontextwechsel, Interrupt-Statistiken, Deferred Procedure Calls (DPC), Interrupt Handling Procedures (ISR), Erstellung und Zerstörung von Prozessen und Threads, Festplatte I/O, Fehlerseiten, Prozessorübergänge zwischen Betriebsmodi (p-state), Registry-Operationen und vieles mehr.

Schnittstelle

Bevor Sie beginnen, wäre es schön, das ausführbare Modul des Dienstprogramms zu erhalten. Sie können Process Monitor hier herunterladen. Das Dienstprogramm wird als portable Anwendung verteilt und erfordert keine Installation, sondern kann einfach aus der Archivdatei in ein beliebiges Verzeichnis extrahiert werden, was bei der Diagnose von portablen Medien und bei der Integration in die Vorinstallationsumgebung (WinPE) äußerst nützlich ist.

Da Process Monitor einen eigenen Treiber verwendet, sind zur Ausführung lokale Administratorrechte erforderlich.

Wenn Sie Process Monitor mit in früheren Sitzungen installierten Filtern starten, öffnet das Programm das Filtereinstellungsfenster (Filter). Dies geschieht, damit der Benutzer, falls gewünscht, die Filter ändern kann, bevor er mit dem Datenerfassungsverfahren beginnt.
Die Process Monitor-Oberfläche ist extrem einfach und sieht standardmäßig so aus:

Stimmen Sie zu, alles Geniale ist wirklich einfach. Die Einfachheit der Benutzeroberfläche bestimmt die intuitive Wahrnehmung dessen, was im System passiert. Unmittelbar nach dem Start beginnt Process Monitor sofort mit der Erfassung von Ereignissen, die im Betriebssystem auftreten, und überwacht die Hauptkomponenten, wie z. B.: Dateisystem, Registrierung, Netzwerk, Prozess-/Thread-Aktivität. Nach der Erfassung werden Ereignisse, die nicht unter den Filter fallen, in chronologischer Reihenfolge im Hauptanwendungsfenster angezeigt. Darüber hinaus beobachtet der Benutzer eine so große Datenmenge, die zunächst leicht entmutigen kann, dass all diese Datenmengen das Hauptprogrammfenster sofort überfluten und seine Grenzen überschreiten, wie der schnell abnehmende seitliche Scroll-Schieberegler eloquent spricht. Jede Zeilenausgabe stellt auf diese Weise ein Ereignis dar, das auf dem System aufgetreten ist, vom Process Monitor-Treiber gesehen und erfasst wurde und nicht von den Filterregeln abgedeckt wird. Das Hauptinformationsfeld ist jeweils als Tabelle formatiert, jede Zeile ist in eine Reihe von Spalten unterteilt, deren Zusammensetzung und Anordnung über die Programmeinstellungen geändert werden kann. Die Standardkonfiguration verwendet die folgenden Spalten:

Spalte Name Bezeichnung
1 Uhrzeit Die Uhrzeit, zu der das Ereignis aufgetreten ist. Anzeige in Sekundenbruchteilen im Format HH:MM:SS,SSSSSSSS mit einer Genauigkeit von sieben Dezimalstellen nach dem Komma. Die Genauigkeit des angezeigten Zeitwerts hängt von der Genauigkeit des im Computer verwendeten Hardware-Zeitgebers (8254/RTC/HPET) ab.
2 Prozessname Prozessname. Die Spalte zeigt den Namen des Prozesses an, der die Operation ausgeführt hat. Es wird nur der Name des Prozesses angezeigt, wenn Sie jedoch mit der Maus über den gewünschten Namen fahren, wird auch der vollständige Pfad zum Modul angezeigt. Die Spalte zeigt das Symbol (Icon) der Anwendung, gepackt in den Ressourcenabschnitt der Binärdatei.
3 PID Prozess ID. Genügend nützlicher Parameter, insbesondere für "komplexe" Prozesse wie svchost.exe.
4 Betrieb Betrieb. Der Name des festgeschriebenen Low-Level-Vorgangs, der vom Prozess auf dem Ziel ausgeführt wird. Normalerweise entspricht dieser Name dem Namen der Funktion, die aufgerufen wird, um die Operation auszuführen. Zusätzlich wird ein Symbol der Ereignisklasse (Register, Datei, Netzwerk, Prozess) angezeigt.
5 Weg Der Pfad zum Ziel, auf dem der Prozess die Operation ausführt. Nicht mit dem Pfad zum Prozess (Modul) verwechseln. Wird nur angezeigt, wenn der Pfad auf das Objekt anwendbar ist. Mögliche Werte:
  • Dateisystempfad beginnend mit einem Laufwerksbuchstaben;
  • Pfad zum Zweig/Registrierungsschlüssel;
  • Netzwerkpfad (Quell- und Zieladressen und Ports);
  • Netzwerkpfad (im UNC-Format);
6 Ergebnis Operationsergebnis. Das Ergebnis einer von der Funktion zurückgegebenen Operation, die den Erfolgsgrad dieser oder jener Aktion angibt. Sie wird in einer separaten Tabelle weiter unten ausführlicher beschrieben.
7 Detail Detaillierte Informationen zu den Details der Veranstaltung. Wie: Angeforderte Zugriffsebene, Datengröße, Datentyp, Netzwerk-E/A-Paketgröße, Dateiattributcodes.

Das Feld des Ergebnisses der Operation (Result) ist eines der wichtigsten und bedarf einer zusätzlichen Erklärung:

Ergebnis Ergebnis Beschreibung
ERFOLG ERFOLG Operation erfolgreich abgeschlossen.
ZUGRIFF ABGELEHNT ZUGRIFF ABGELEHNT Operation fehlgeschlagen. Die Sicherheitsbeschreibung des Objekts gewährt keinen Prozess notwendige Rechte Zugriff auf das Objekt.
VERLETZUNG TEILEN FILE-SHARING-VERLETZUNG Operation fehlgeschlagen. Das Objekt ist bereits von jemandem geöffnet und unterstützt den Freigabemodus nicht.
NAMENKOLLISION NAMENSKONFLIKT Der Prozess hat versucht, ein bereits vorhandenes Objekt zu erstellen.
NAME NICHT GEFUNDEN NAME NICHT GEFUNDEN Es wurde versucht, ein nicht vorhandenes Objekt zu öffnen: Der Pfad wurde gefunden, aber der Name des Objekts wurde nicht gefunden. Trotz der "lauten" Formulierung ist es bei der Suche nach Problemen in den meisten Fällen nicht von Interesse. Tatsache ist, dass dieses Ergebnis häufig als Ergebnis regulärer Operationen zurückgegeben wird. Ein typisches Beispiel wäre die Überprüfung auf das Vorhandensein einer Datei oder eines Registrierungsschlüssels in einem bestimmten Pfad. Nach der Rückgabe eines solchen Ergebnisses folgt der Code, der die Prüfung durchgeführt hat, einfach einer anderen logischen Verzweigung. Deshalb: Dieses Ergebnis kann verwendet werden, um Probleme mit Reservierungen zu finden.
PFAD NICHT GEFUNDEN PFAD NICHT GEFUNDEN Es wurde versucht, ein nicht vorhandenes Objekt zu öffnen: Pfad nicht gefunden. Das gleiche wie das vorherige. Dieses Ergebnis kann verwendet werden, um Probleme mit Reservierungen zu finden.
KEINE SOLCHE DATEI DIE DATEI EXISTIERT NICHT Es wurde versucht, ein nicht vorhandenes Objekt oder eine Gruppe von Objekten zu öffnen. Wird normalerweise zurückgegeben, wenn eine Gruppe von Objekten per Maske angefordert wird, z. B. zeigt *.exe alle Dateien mit der Erweiterung .exe im angeforderten Verzeichnis an. Wenn keine Datei gefunden wird, die der angegebenen Maske entspricht, wird ein ähnliches Ergebnis zurückgegeben.
NAME UNGÜLTIG FALSCHER NAME Der Prozess hat ein Objekt mit dem falschen Namen angefordert. Tritt wahrscheinlich auf, wenn der Name des angeforderten Objekts falsch formatiert ist, ungültige Zeichen enthält, im Allgemeinen ungültig ist.
KEINE EINGÄNGE MEHR EINTRAG FEHLT Der Prozess hat die Aufzählung des Inhalts des Registrierungsschlüssels abgeschlossen. Bezieht sich normalerweise auf das eigentliche Ende dieser Prozess, zeigt an, dass keine weiteren Einträge vorhanden sind.
KEINE DATEIEN MEHR DATEIEN FEHLEN Tritt auf, wenn eine Anforderung zum Aufzählen von Objekten in einem Dateisystemverzeichnis gestellt wird. Spricht man normalerweise vom eigentlichen Ende dieses Prozesses, deutet das nicht an weitere Dateien Nein.
ENDE DER DATEI ENDE DER DATEI Dateiende erreicht. Der Prozess hat bei einer seiner Operationen das Ende der Datei erreicht (zB: Lesen aus einer Datei).
PUFFER ZU KLEIN PUFFER ZU KLEIN Unzureichender Pufferspeicher. Der zugewiesene Puffer ist zu klein, um diesen Vorgang abzuschließen, es muss ein größerer Puffer zugewiesen werden. Außergewöhnlich informativer Status, teilt der Prozessfunktion mit, dass der in den Eingabeparametern der Funktion angegebene Puffer klein ist und vergrößert werden sollte. In den meisten Fällen werden sie nicht als Schlüsselinformationen bei der Analyse von Fehlern betrachtet.
PUFFERÜBERLAUF PUFFERÜBERLAUF Der Puffer ist voll. Der von der Anwendung zugewiesene Puffer ist zu klein, um die angeforderten Daten aufzunehmen. Die aufgerufene Funktion weist die aufrufende Funktion an, einen größeren Puffer zuzuweisen. Außergewöhnlich informativer Status, informiert eine Prozessfunktion, dass der Puffer erhöht werden sollte. In den meisten Fällen werden sie bei der Analyse von Fehlern nicht als Schlüsselinformationen betrachtet, aber sie erschrecken Benutzer weiterhin mit unbegründetem Verdacht auf Hacking und andere böswillige Aktivitäten :).
REPARIEREN WIEDERAUFBEREITUNG Ein Prozess hat ein Objekt angefordert, das auf ein anderes Objekt verweist. Wird normalerweise zurückgegeben, wenn ein Link gefunden wird.
KEIN REPARATURPUNKT KEINE WIEDERAUFBEREITUNG Das angeforderte Objekt verweist nicht auf ein anderes Objekt. Tritt normalerweise als Reaktion auf die Übergabe des Steuercodes FSCTL_GET_REPARSE_POINT an den Dateisystemtreiber auf.
FASTIO NICHT ERLAUBT SCHNELLE INPUT-OUTPUT IST VERBOTEN Der FAST-I/O-Mechanismus ist für das angeforderte Objekt nicht verfügbar, dh eine I/O-Anforderung mit dem FAST-I/O-Mechanismus an den Treiber wird nicht unterstützt. In den meisten Fällen werden sie nicht als Schlüsselinformationen bei der Analyse von Fehlern betrachtet.
DATEI NUR FÜR LESER GESPERRT DATEI IST schreibgeschützt Die Datei oder Dateiprojektion ist gesperrt. Die Datei ist schreibgeschützt. Der Speichermanager greift auf das Dateisystem zu, um eine Sperre zu erwerben, während der Dateiabschnitt während des Abbildungsprozesses im Speicher erstellt wird. Mit anderen Worten, dieses Ergebnis weist auf eine Schreibsperre für die Datei hin, während der Dateiabschnitt erstellt wurde, und jetzt hat niemand Schreibzugriff darauf angegebene Datei. Somit kann der Speichermanager die Unveränderlichkeit der Daten während der Sperrung steuern. Das Ergebnis ist als informativ zu betrachten.
DATEI MIT SCHRIFTSTELLERN GESPERRT DATEI SCHRIFTLICH VERFÜGBAR Die Datei oder Dateiprojektion ist gesperrt. Mindestens ein Benutzer kann Daten darauf schreiben.
IST VERZEICHNIS OBJEKT IST EIN KATALOG Das angeforderte Objekt ist ein Verzeichnis (Verzeichnis).
UNGÜLTIGE GERÄTEANFRAGE UNGÜLTIGE GERÄTEANFRAGE Diese Anfrage ist für das Zielgerät nicht gültig.
UNGÜLTIGER PARAMETER UNGÜLTIGER PARAMETER An einen Dienst oder eine Funktion wurde ein ungültiger Parameter übergeben.
NICHT GEWÄHRT NICHT BEREITGESTELLT Die angeforderte Dateisperre konnte aufgrund anderer Sperren nicht gewährt werden.
ABGESAGT ABGESAGT Die E/A-Anforderung wurde abgebrochen. Beispielsweise kehrt es häufig zu einem Aufruf von NotifyChangeDirectory zurück, wenn ein Dateisystemverzeichnis auf Änderungen überprüft wird.
SCHLECHTER NETZWERKPFAD NETZWERKPFAD NICHT GEFUNDEN Der Netzwerkpfad wurde nicht gefunden.
FALSCHER NETZWERKNAME NETZWERKNAME NICHT GEFUNDEN Der angegebene Netzwerkname wurde auf dem Remotehost nicht gefunden.
MEDIEN SCHREIBGESCHÜTZT MEDIEN SCHREIBGESCHÜTZT Das Medium kann nicht beschrieben werden. Das Medium ist schreibgeschützt.
SCHLÜSSEL GELÖSCHT ABSCHNITT ENTFERNT Es wurde versucht, einen Vorgang für einen zum Löschen markierten Registrierungsschlüssel auszuführen.
NICHT IMPLEMENTIERT NICHT IMPLEMENTIERT Der angeforderte Vorgang ist fehlgeschlagen, da er nicht im Ziel implementiert wurde.
KEINE EASY ON FILE KEINE ERWEITERTEN ATTRIBUTE Keine weiteren erweiterten Attribute gefunden. Ein Fehler tritt auf, wenn versucht wird, erweiterte Attribute von einem Objekt anzufordern, das sie nicht hat.
OPLOCK NICHT GEWÄHRT OPPORTUNITY LOCK NICHT GEWÄHRT Weigerung, eine opportunistische Sperre zu gewähren. Oplock (opportunistische Sperre) ist eine Sperre, die es einem (Netzwerk-)Client ermöglicht, eine Datei auf dem Server zu sperren und lokal (auf der Clientseite) Daten aus der Datei zwischenzuspeichern, während andere Clients daran gehindert werden, die Datei zu ändern. Opportunistisches Sperren ist mit dem Mechanismus für Offlinedateien verbunden, der reduziert Netzwerktraffic und die Reaktionszeit des Servers zu verbessern. Der Status OPLOCK NOT GRANTED ist eine Antwort auf die Übertragung des Steuercodes FSCTL_REQUEST_OPLOCK an den Dateisystemtreiber. Es wird verwendet, um problematische Objekte zu diagnostizieren, die mit Netzwerkressourcen schlecht funktionieren.

* - Ich habe versucht, die Ergebnisse einzufärben, die für das Auffinden von Problemen von Bedeutung sein können, aber alles ist eher bedingt und das Vorhandensein einiger Ergebnisse weist möglicherweise nicht auf einen Fehler hin. Alles muss im Kontext des Geschehens und der umgebenden Ereignisse betrachtet werden.
Neu aufgezeichnete Ereignisse werden am Ende der Ereignisliste in chronologischer Reihenfolge hinzugefügt und gehen dementsprechend bei vielen Ereignissen sofort über die Grenzen des aktiven Fensters hinaus. Bei den grundlegenden Schnittstelleneinstellungen bleiben die Informationen im Fenster also statisch und geben nur die zuerst erfassten Ereignisse wieder, die letzten Ereignisse werden an das Ende der Liste geschrieben, und nur die sich ändernde Größe des seitlichen Scroll-Cursors zeigt eine Änderung an Gesamtlänge. Dieses Verhalten des Programms kann jedoch geändert werden, indem das automatische Scrollen (Autoscroll) der Liste der Ereignisse aktiviert wird, indem die entsprechende Option aktiviert wird, oder indem die Tastenkombination Strg + A gedrückt wird. In diesem Fall scrollt die Ereignisliste kontinuierlich nach oben und zeigt die neuesten Systemereignisse in Echtzeit an.

Symbolleiste

Lassen Sie uns den Zweck der Schaltflächen erklären, die sich in der Symbolleiste der Benutzeroberfläche des Process Monitor-Dienstprogramms befinden:

Von links nach rechts:

  • Öffnen - Laden zuvor gespeicherter Ereignisse (Traces);
  • Speichern - Speichern aller erfassten Ereignisse (Traces);
  • Capture - Ereigniserfassung aktivieren/deaktivieren;
  • Autoscroll - Autoscroll-Ereignisse im Hauptbildschirm;
  • Löschen – Löschen des Hauptfensters und aller erfassten Ereignisse;
  • Filter - Konfigurieren von Filtern und Hervorheben von Ereignissen;
  • Highlight - Setzen Sie das Highlight von Ereignissen;
  • Prozess aus Fenster einbeziehen – Richten Sie Filterereignisse für ein bestimmtes Fenster auf dem Desktop ein. Ermöglicht es Ihnen, das Ziel auf das ausgewählte Fenster zu bewegen. Der Prozessmonitor bestimmt, ob das Fenster zu einem Prozess gehört, und aktiviert das Filtern nach diesem Prozess.
  • Prozessbaum anzeigen - Prozessbaum;
  • Suchen - Suche nach Ereignissen anhand bestimmter Kriterien;
  • Zu Objekt springen – Springen Sie zu einem Registrierungsschlüssel oder einer Datei. Process Monitor analysiert den Inhalt der Spalte Path der ausgewählten Zeile, startet den Datei-Explorer/Registrierungs-Editor und öffnet den entsprechenden Baumeintrag;
  • Registrierungsaktivität anzeigen - Statusschalter zum Anzeigen von Registrierungsaktivitätsereignissen unter allen Systemereignissen;
  • Dateisystemaktivität anzeigen - Statusschalter zum Anzeigen von Dateisystemaktivitätsereignissen unter allen Systemereignissen;
  • Netzwerkaktivität anzeigen - Statusschalter zum Anzeigen von Netzwerkaktivitätsereignissen unter allen Systemereignissen;
  • Prozess- und Thread-Aktivität anzeigen - Statusschalter zum Anzeigen von Prozess-/Thread-Aktivitätsereignissen unter allen Systemereignissen;
  • Profilerstellungsereignisse anzeigen – Wechseln Sie den Status der Anzeige von Profilerstellungsereignissen zwischen allen Systemereignissen. Profiling sind Ereignisse, die von Process Monitor aufgezeichnet werden, um die Menge an CPU-Zeit und Arbeitsspeicher zu berechnen, die von jedem Prozess verwendet werden.

Hotkeys

Kombination Beschreibung
Strg+E Aktivierung/Stopp der Ereignisaufzeichnung.
Strg + X Löschen des Protokolls erfasster Ereignisse.
Strg+A Aktivieren/Deaktivieren des automatischen Scrollens von Ereignissen.
Strg+F Suche nach einem Ereignis unter allen erfassten Ereignissen.
Strg+C Kopieren Sie das ausgewählte Ereignis als Textzeichenfolge mit Trennzeichen.
Strg+J Gehe zum ausgewählten Objekt.
Strg+L Öffnen des Filtereinstellungsfensters.
Strg+r Setzen Sie den Filter auf die Standardeinstellungen zurück.
Strg+h Öffnen des Hintergrundbeleuchtungsfensters.
Strg+t Öffnen des Prozessbaums.

Ereignisfilterung

Wie bereits erwähnt, ist die Anzahl der im System auftretenden (von verschiedenen Komponenten erzeugten) Ereignisse ziemlich groß. Die Anzahl der Ereignisse, die Process Monitor "sieht", ist geringer, aber nicht viel. Es stellt sich eine vernünftige Frage: Brauchen wir alle Ereignisse? Die Antwort ist offensichtlich. Die meisten Ereignisse, die im Hauptfenster des Programms angezeigt werden, sind im Zusammenhang mit bestimmten hochspezialisierten Benutzeraufgaben völlig unnötig. Nun, der Benutzer muss die Bildladeereignisse des plötzlich gestarteten Aktualisierungsprogramms nicht sehen, während er damit beschäftigt ist, die Registrierungsschlüssel zu studieren, die die Konfiguration des für ihn interessanten Programms speichern. Um unnötige Ereignisse auszublenden, verfügt Process Monitor über flexible und leistungsstarke Filterwerkzeuge. Mit dem Filter können Sie unnötige Ereignisse ausblenden, wodurch die Anzahl der angezeigten Elemente eingeschränkt und der Suchbereich für das Problem eingegrenzt wird.

Durch Filtern können Sie ein Ereignis ausblenden, dh seine Anzeige ausschalten. Alle Ereignisse werden jedoch aufgezeichnet, und Sie können gefilterte (ausgeblendete) Ereignisse jederzeit anzeigen, indem Sie den Filter deaktivieren (zurücksetzen).

Da das Filtern eines der Schlüsselelemente von Procmon ist, sind seine Fähigkeiten in diesem Programm sehr gut entwickelt. Ereignisse können mit any gefiltert werden dem Programm zur Verfügung Ereignisattribute. Es gibt mehrere Möglichkeiten, Ereignisse in Process Monitor zu filtern:

Nach Klasse filtern

Dies ist die allgemeinste, man könnte sagen, grobe Ereignisfilterung, mit der Sie eine ganze Klasse von Ereignissen auf einmal von der Ausgabe ausschließen können: Registrierung, Dateisystem, Netzwerk, Prozess-/Thread-Aktivität, Profiling-Ereignisse. Filtereinstellungen nach Ereignisklasse werden durch fünf Schaltflächen auf der rechten Seite der Symbolleiste dargestellt:

Dementsprechend wird in dem Moment, in dem eine der aufgelisteten Klassenschaltflächen vom Benutzer in der Befehlsleiste deaktiviert (gedrückt) wird, der entsprechende Filter mit der Exclude-Anweisung zum allgemeinen Filtersatz hinzugefügt, wodurch alle Ereignisse dieser Klasse aus der Ausgabe ausgeblendet werden .

Filtermenü

Welche Filtertypen auch immer in Process Monitor verwendet werden, sie sind alle über das Menü Filter und das Unterelement Filter verfügbar. Dies ist ein vollständiger (allgemeiner) Satz von Filterparametern und wird in der folgenden Form dargestellt:

Dasselbe Filtereinstellungsfenster kann schnell auf andere Weise aufgerufen werden: durch Drücken der Tastenkombination Strg + L oder durch Klicken auf die Schaltfläche Filter in der Symbolleiste. Das Filtereinstellungsfenster bietet dem Benutzer ausreichend Möglichkeiten zum Maskieren von Systemereignissen. Das Process Monitor Filter-Fenster ist bedingt in zwei Teile geteilt: Der obere enthält Oberflächenelemente zum Hinzufügen eines Filters, der untere enthält eine Liste von Filtern, die bereits auf die Standardausgabe angewendet wurden. Der Filter wird hinzugefügt, indem von links nach rechts alle Attribute durchlaufen werden, die wiederum durch Dropdown-Listen dargestellt werden. Einige Attribute sind miteinander verbunden, dh die Auswahl eines Attributs aus einer Liste kann dazu führen, dass der Wert automatisch in anderen Listen gesetzt wird. In einigen Feldern können Sie den Wert bearbeiten. Nach Abschluss der Formation müssen Sie zum Hinzufügen eines Filters auf die Schaltfläche Hinzufügen klicken. Dadurch werden den im unteren Bereich des Fensters angezeigten Filtern neue Filterparameter hinzugefügt.
Um die Regeln für einen ausgewählten Filter zu bearbeiten, doppelklicken Sie einfach auf die entsprechende Zeile, die den Filter unten im Fenster beschreibt. Auf diese Weise verschieben Sie die Parameter in den oberen Teil (die entsprechenden Bedingungen werden ausgefüllt), wo Sie sie bearbeiten können, und durch erneutes Drücken der Schaltfläche Hinzufügen beenden Sie die Bearbeitung des Filters, indem Sie ihn wieder in den unteren Teil des Fensters verschieben , zur Liste der aktiven Filter. Der Filter kann mit der Schaltfläche Entfernen entfernt werden. Nach dem Bearbeiten der Filter können diese durch Drücken der Schaltfläche OK oder Anwenden in Aktion gesetzt (aktiviert) werden. Um die Standardfiltereinstellungen auf den Anfangszustand zurückzusetzen, der beim ersten Start des Programms vorhanden war, klicken Sie auf die Schaltfläche Zurücksetzen.
Wie Sie vielleicht bemerkt haben, enthält die Liste der vordefinierten Filter standardmäßig eine Reihe von Regeln des Typs Ausschließen (Ausschließen). Diese Regeln dienen dazu, Ereignisse zu maskieren, die nach Ansicht der Autoren Aktivitätsereignisse derjenigen Komponenten des Betriebssystems sind, die in den meisten Szenarien nicht übertragen werden nützliche Informationen Anwendungen zu beheben. Hier finden Sie Ausnahmen für: Procmon (Process Monitor), Procexp (Process Explorer), Autoruns, Systemprozesse, Low-Level-I/O-Requests Windows-Treiber IRP_MJ, FAST_IO Low-Level-Operationen, Trace-Ereignisse, pagefile.sys-Auslagerungsdatei-Ereignisse, NTFS-Manager-Metadaten-Ereignisse.

Schnellfilter

Für einige der im Hauptfenster angezeigten Ereignisparameter können Sie einen sogenannten „Schnellfilter“ anwenden. Es wird durch einen Rechtsklick auf ein Ereignis im Hauptprogrammfenster aktiviert:

Im geöffneten Kontextmenü Sie können mehrere sehen verschiedene Wege Filterung. Abhängig davon, in welcher Spalte in der Zeile die rechte Maustaste gedrückt wurde, können wir Ereignisse, die eine Übereinstimmung im Spaltenwert aufweisen, aus dem gesamten Ausgabearray ausschließen oder einbeziehen. Dies geschieht durch Auswahl des entsprechenden Elements, beginnend mit Include ... (Include) und Exclude ... (Exclude). Das Kontextmenü enthält außerdem die Einträge Filter bearbeiten ... , Ereignisse davor ausschließen , Ereignisse danach ausschließen .

Nach Fensterbesitzer filtern

Zusätzlich zu den grundlegenden Filteroptionen hat das Procmon-Dienstprogramm die Möglichkeit, Ereignisse nach dem Deskriptor (Bezeichner) des Anwendungsfensters zu filtern. Dies ist eine ziemlich praktische Funktion, da der Benutzer die Ereignisse des Prozesses anzeigen kann, dessen Fenster auf dem Desktop erscheint. Um diese Funktion zu aktivieren, suchen Sie das Fadenkreuz-Symbol in der Symbolleiste:

Ziehen Sie es auf das gewünschte Fenster und Procmon erstellt einen geeigneten Filter für den Prozess, der das ausgewählte Fenster besitzt, und ändert die Ausgabe im Hauptfenster entsprechend.

Ereignishervorhebung

Zusätzlich zu den Filtern hat Procmon die Fähigkeit, Ereignisse durch Einfärben zu markieren. Während das Filtern unnötige Ereignisse aus der Ausgabe ausblendet, hebt das Hervorheben einfach die notwendigen Ereignisse in der Liste hervor. Direkt scheint es nicht für Filter zu gelten, da es Ereignisse nicht ausblendet, sondern sie nur mit einer anderen Farbe in der Liste markiert. Sie können das Fenster mit den Hintdes Prozessmonitors aufrufen, indem Sie entweder die Tastenkombination Strg + H drücken oder auf das entsprechende Symbol in der Taskleiste klicken. Es sieht aus wie das:

Wie Sie sehen können, ist es identisch mit dem Filtereinstellungsfenster, außer dass es standardmäßig keine Einstellungen hat, dh die Hintergrundbeleuchtung ist vollständig deaktiviert. Der Algorithmus zum Einstellen der Hervorhebungsparameter und zum Abtasten der Ergebnisse des Hervorhebungsfensters ähnelt in vielerlei Hinsicht dem im Filterfenster.

Suche nach Ereignissen

Das Filtern von Ergebnissen ist großartig! Der Filter ermöglicht es uns, die Auswahl aus dem allgemeinen Ereignisstrom flexibel zu manipulieren, jedoch ist es in den meisten Fällen ziemlich schwierig, Bedingungen zu schaffen, unter denen der Bereich der gefilterten Ereignisse auf ein akzeptables Minimum eingeengt würde. Es gibt immer noch viele Ergebnisse, und im Bereich der gefilterten Linien muss manchmal eine plötzlich entdeckte Konstante gefunden werden. Manchmal ist es nützlich, welche zu finden Stichwort in der gesamten Menge der erfassten Informationen, ohne zu verstehen, in welcher Spalte sie sich befinden können, so dass sich das Erstellen eines Filters als problematisch erweist. Diese und viele andere Arbeitsmomente sprechen dafür, die traditionelle Suche zu nutzen, die jedem seit seiner Kindheit bekannt ist. Das Suchfenster wird über die Tastenkombination Strg + F oder über das Menü Bearbeiten - Suchen aufgerufen:

Das bereits von anderen Microsoft-Produkten bekannte Suchfeld wird angezeigt. Die Suche wird ausnahmslos anhand der Werte aller Ausgabefelder im Hauptfenster des Prozessmonitors durchgeführt, und wenn die erste Übereinstimmung gefunden wird, scrollt das Dienstprogramm den Bildschirm zum gefundenen Wert und markiert die gesamte Zeile mit dem erkannten Schlüsselfragment in Blau.

Veranstaltungsdetails

Process Monitor erhält eine ziemlich große Menge an Informationen von verschiedenen Komponenten des Betriebssystems. zusätzliche Information. Alle werden in der Spalte Detail angezeigt. Die meisten von ihnen sind rein informativ, daher werden sie in der Regel in der Analyse übersprungen. Hier finden Sie die angeforderte Zugriffsebene für den Vorgang, Details zu Funktionsanforderungen, Zusätzliche Optionen einige Funktionen, Treiberpaketnamen usw.

Erkunden eines Ereignisses

Alle Informationen, die Process Monitor beim Aufzeichnen von Ereignissen sammelt, werden in Form einer riesigen Tabelle dargestellt, in der jede Zeile nur eine allgemeine Beschreibung eines bestimmten aufgetretenen Ereignisses widerspiegelt. Was denken Sie also, sind diese Informationen, die auf dem Hauptbildschirm des Dienstprogramms in Form von begrenzten Informationen, die in mehrere Spalten unterteilt sind, dargestellt werden, ausreichend? Manchmal ja, aber oft nein! Wir müssen den Autoren von Process Monitor "a Anerkennung zollen, dass sie die Logik für eine detailliertere Untersuchung der aufgezeichneten Ereignisse bereitgestellt haben. Lassen Sie uns auf die Ereigniszeile doppelklicken und sehen, was passiert? Nach dem Doppelklicken öffnet sich ein separates Fenster, das sieht so aus:

Auf der Registerkarte Ereignis sehen wir allgemeine Informationenüber die interessierende Veranstaltung. Im Allgemeinen ist diese spezielle Registerkarte für den Forscher nicht von großem Wert, da sie Informationen enthält, die auf andere Weise in der Benutzeroberfläche abgerufen werden können. Aber hier sind die beiden verbleibenden Registerkarten des Fensters, die uns definitiv interessieren können. Die mittlere Registerkarte heißt Prozess (Prozess) und sieht folgendermaßen aus:

Hier sehen wir den Pfad zum Modul (Path), Befehlszeile, mit der das Modul gestartet wurde (Befehlszeile), der Benutzer, mit dessen Rechten der Prozess gestartet wurde (Benutzer), die Anmeldesitzungskennung (Auth-ID), in der der Prozess, der Eigentümer der Operation, ausgeführt wird, und die Integrität Ebene (Integrität), die dem Prozess, dem Eigentümer der Operation, beim Start zugewiesen wird. Besonderes Augenmerk wird auf das Informationsfenster mit einer Liste der geladenen Bibliotheken (Module) gelegt, das ungebetene Gäste in Form verschiedener Arten von Malware sehr gut identifizieren kann. Aber für fortgeschrittene Forscher ist der wahre Wert der letzte, ganz rechte Reiter Stack (Stack), der es Ihnen ermöglicht, den Call-Stack des Haupt-Threads des Prozesses zu sehen:

Wie wir sehen können, finden Sie auf dieser Registerkarte die klassische Kette von Funktionsaufrufen, die uns aus dem WinDbg-Debugger bekannt ist und die als Call Stack bezeichnet wird. Erstens ermöglicht es Ihnen, die Abfolge von Funktionsaufrufen seit dem Beginn der Ausführung der Startfunktion des Threads zu verfolgen. Zweitens können Sie durch die Reihenfolge der Funktionsaufrufe feststellen, zu welchen Modulen (Bibliotheken) diese Funktionen gehören, und so Systemkomponenten identifizieren, die entweder aktualisiert werden müssen oder gar nicht in diesem Modul verwendet werden sollten (z. B. Viren).

Anwendungsfälle

Einige Anmerkungen zum Process Monitor-Status:

  • Ein Ereignis mit Load Image im Operationsfeld hilft bei der Diagnose von Programmstartproblemen. Wenn das Programm aus irgendeinem Grund nicht startet, dann suchen wir allgemeine Liste Ereignis mit dem Load Image-Vorgang und sehen Sie sich die Listen der DLLs an, die (beschrieben durch ihre Ereignisse) unmittelbar nach dem Image-Load-Ereignis geladen werden. Wenn wir uns an den Algorithmus zum Laden von Bildern erinnern, werden wir verstehen, dass auf die Operation „Bild laden“ normalerweise Suchereignisse für die erforderlichen DLL-Bibliotheken folgen. Die Sache ist die Windows-Bootloader bereitet den Adressraum des Prozesses vor, indem alles hineinprojiziert wird vom Programm gefordert Bibliotheken und implizites Linken in der Anfangsphase. Wenn in einem der erforderlichen Hauptprogramm DLLs Beim Laden des Images ist ein Fehler aufgetreten, dann ist es offensichtlich, dass der Windows-Bootloader das Hauptprogramm auch nicht starten kann. Das Bildladeereignis wird mit dem Status "Zugriff verweigert" (ACCESS DENIED) behoben;
  • Status, auf die Sie zuerst achten sollten: ACCESS DENIED, SHARING VIOLATION, NAME NOT FOUND (bei letzterem gibt es Ausnahmen). Der Status NAME NICHT GEFUNDEN ist in den meisten Fällen ein ziemlich typischer Abschlussstatus, Sie sollten seine Bedeutung nicht so direkt übertreiben und ihn für den Schuldigen aller Probleme halten. Häufig wird der Status angezeigt, wenn eine Anwendung das Vorhandensein einer Datei oder eines Registrierungsschlüssels (mit der Programmkonfiguration) überprüft und basierend auf den Ergebnissen dieser Überprüfung den einen oder anderen Code ausführt, dh eine logische Verzweigung durchführt abhängig vom Ergebnis der Anfrage. Das Programm findet möglicherweise den Registrierungsschlüssel nicht, der seine eigene Konfiguration enthält, und in solchen Fällen wird derselbe Status NAME NICHT GEFUNDEN angezeigt. Kurz gesagt, der Status NAME NICHT GEFUNDEN muss im Zusammenhang mit dem Ereignis betrachtet werden, das dazu geführt hat.
  • Um den Schuldigen für die übermäßige Belastung des Festplattensubsystems zu ermitteln: Führen Sie Procmon aus, erstellen Sie einen Filter mit den Einstellungen Pfad - beginnen Sie mit - C: \ (obwohl jede interessante logisches Laufwerk) und klicken Sie auf OK. Dann, nach einer kurzen Datenerfassung (ca. eine Minute), gehen wir zum Menü Tools und wählen den Punkt Process Activity Summary aus. Sortieren Sie im sich öffnenden Fenster nach der Spalte Dateiereignisse und erhalten Sie die Namen der Prozesse, die aktiv mit dem Dateisystem arbeiten, ganz oben in der Liste. Um genau herauszufinden, welche Dateien am intensiven Datenaustausch beteiligt sind, können Sie das Menü Extras und den Punkt Dateiübersicht auswählen und in dem sich öffnenden Fenster die Liste der Dateien beobachten, die an Festplattenoperationen beteiligt sind. Die Ausgabe wird automatisch nach der Spalte „Total Events“ sortiert, sodass wir oben in der Liste die am häufigsten verwendeten Disk-I/O-Dateien sehen.

Boot-Stage-Diagnose

Sehr oft gibt es Situationen, in denen Probleme mit dem Betriebssystem beginnen, lange bevor die Benutzeroberfläche gezeichnet wird, bereits in der Bootphase. Um solche Fehler im Netzwerk zu diagnostizieren, gibt es eine Reihe spezialisierter Tools, wie zum Beispiel . Passt erfolgreich in diese Serie und das Process Monitor-Dienstprogramm. Procmon zeichnet die Ereignisse aller während der Bootphasen laufenden Prozesse mit dem Bootphasentreiber namens procmon23.sys (der Name kann von Version zu Version variieren) auf, der am Anfang des Artikels beschrieben wurde. Leider startet der Treiber auf der Stufe des Winload.exe-Moduls, was die Fixierung einer früheren Stufe von Bootmgr verhindert, aber in den meisten Fällen können Sie vor dieser Kleinigkeit die Augen verschließen. Die Aktivierung der Protokollierung des Bootvorgangs wird über die Option Enable Boot Logging im Menü Options aktiviert.

Neben der Aktivierung des Mechanismus schlägt Procmon vor, das Thread-Profiling in regelmäßigen Abständen zu aktivieren. Dies ist wichtig, da Bootprobleme in den meisten Fällen auf die langsame Ausführung bestimmter Prozesse zurückzuführen sind. Um solche "bremsenden" Prozesse zu verfolgen, wird die Profilerstellung aktiviert, mit der Sie in regelmäßigen Abständen solche Snapshots der Aktivität von Threads innerhalb des Prozesses (Call-Stack und andere Daten) erstellen können. Als Ergebnis helfen die aufgezeichneten Informationen zu verstehen, für welche Operationen der Thread Prozessorzeit aufwendet.
Nachdem Sie die Option Enable Boot Logging aktiviert haben, können Sie das Betriebssystem neu starten. Führen Sie nach Abschluss des Downloads das Dienstprogramm Process Monitor aus, um die Protokolldateien des Download-Prozesses zu speichern und das folgende Dialogfeld anzuzeigen:

In dem wir aufgefordert werden, die Ereignisse des Download-Vorgangs in einer separaten Protokolldatei mit der Erweiterung .pml zu speichern. Je nach Umfang der Informationen kann die Protokolldatei als einzelne Datei gespeichert oder in eine Reihe von Dateien mit ungefähr gleicher Größe aufgeteilt werden.

Die Menge an Informationen, die der Process Monitor-Treiber während der Startphasen für ein "mittelgroßes" :) Betriebssystem Windows 7 SP1 x64 aufzeichnet, ist ziemlich groß. Eine typische Größe mit aktiviertem Thread-Profiling kann 1500 Megabyte überschreiten.

Nachdem die Protokolldateien der Ladeschrittaktivität gespeichert wurden, können sie später analysiert werden, indem die .pml-Datei in Process Monitor geöffnet wird, entweder durch Doppelklicken auf die .pml-Datei oder durch direktes Öffnen aus dem Menü Datei – Öffnen . Hier gibt es jedoch einen Vorbehalt: Wenn die Datei oder der Satz von Protokolldateien des Startvorgangs zu groß ist und das Dienstprogramm nicht genügend Speicherplatz in der Auslagerungsdatei oder im virtuellen Speicherplatz des Prozesses finden kann, um einen Puffer zu erstellen, wird der Fehler " Bootlog.pml kann nicht zum Lesen geöffnet werden . . ". Ich persönlich habe es gelöst, indem ich vorübergehend die Auslagerungsdatei aktiviert habe, die traditionell für mich überhaupt deaktiviert ist.

Prozessmonitor - kostenloses Programm A, der die Aktivität von Windows-Prozessen überwacht. Ermöglicht es Ihnen, die Arbeit der Registrierung zu überwachen, Streams zu steuern, zu filtern und Sitzungs-IDs in Echtzeit zu erhalten. Die Anwendung gibt die zuverlässigsten Informationen und ermöglicht es Ihnen, die Ergebnisse in russischer Sprache aufzuzeichnen Textdateien. Ein weiteres Merkmal Software ist es, die Arbeit der Fahrer zu überwachen und Bilder zu laden. Sie können zusätzlich harmlose Filter herunterladen, um eine größere Benutzerfreundlichkeit zu erreichen.

Vor- und Nachteile des Programms

  • voll integrierte Kontrolle über Prozesse: vom Hochfahren bis zum Herunterfahren des PCs;
  • Interaktion mit DLLs;
  • das Dienstprogramm sorgt für das Sammeln von Stapeln;
  • fortschrittliche Architektur des Aufzeichnungsprotokolls, die die Aufzeichnung von bis zu mehreren Millionen Ereignissen ermöglicht;
  • einfache Suche;
  • nützliche Hinweise.

Mängel:

  • Informationen verfolgen;
  • die Komplexität der Arbeit mit formatierten Daten, die nicht immer in eine Spalte passen.

Somit machen die oben genannten Pluspunkte der Anwendung Process Monitor aus nützliches Werkzeug für Nachverfolgungsprobleme und Fehlerbehebung: von Schadcode zu Fahrfehlern!

Prozessmonitor- ein Tool zum Arbeiten mit der Registrierung, dem Dateisystem, Prozessen und Threads des Windows-Betriebssystems. Das Programm beinhaltet die Vorteile des vorherigen Windows-Anwendungen entwickelt, um den Betrieb des Systems zu überwachen. Prozessmonitor unterstützt erweitertes Filtern, gleichzeitiges Schreiben von Informationen in eine Datei. Mit dem Tool können Sie den Beginn und das Ende aktueller Prozesse und Threads verfolgen. Die Anwendung unterstützt die Verfolgung des Ladens von DLL-Bildern und Treibern verschiedene Geräte. Das Dienstprogramm sammelt weitere Daten über die Parameter der durchgeführten Eingabe- und Ausgabeoperationen. Durch das Sammeln von Thread-Stacks können Sie die Grundursache einer bestimmten Operation ermitteln. Process Monitor verfügt über integrierte Prozesshinweise, um das Anzeigen von Informationen zu einem bestimmten Prozessabbild zu vereinfachen.



- Entwickelt, um Registrierungsdateien, Prozesse, Thread-Stacks und das Dateisystem anzuzeigen und damit zu arbeiten.
- Ermöglicht das Setzen von Filtern, die nicht zu Informationsverlusten führen.
- Benutzerdefinierte Spalten können für jede Ereigniseigenschaft verschoben werden.
- Dank des Protokollformats werden alle Daten für einen späteren Download in einer anderen Programmversion gespeichert.
- Führt eine robuste Suche nach Prozessdaten durch, die Informationen über den Pfad des Prozessabbilds, die Benutzer-ID und die Sitzung enthält.
- Unterstützt diskontinuierliche Suche und Protokollierung aller Vorgänge, die während des Systemstarts aktiv sind.

Nachteile des Programms

- Hat einen geschlossenen Quellcode.
- Es gibt keine russische Sprache.

- Prozessor mit einer Taktrate von 800 MHz oder höher.
- Rom 128 MB oder mehr.
- Freier Festplattenspeicher ab 3 MB.
- 32-Bit- oder 64-Bit-Architektur (x86 oder x64).
- Operationssystem Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10

Task-Manager: Vergleichstabellen

Der Name des Programms Auf Russisch Verteilungen Installateur Popularität Die Größe Index
★ ★ ★ ★ ★ 1,1 MB 97
★ ★ ★ ★ ★ 2MB 99
★ ★ ★ ★ ★ 1,8 MB 98
★ ★ ★ ★ ★ 1MB 98

Heute werde ich versuchen, das Problem des korrekten Betriebs von Software unter Benutzerrechten am Beispiel einer Software (Prima Expert Digital Microscope) zu behandeln digitales Mikroskop von JSC LOMO.


Da wir in vielen Unternehmen eine strenge Sicherheitsrichtlinie im STP vorgeschrieben haben und normale Mitarbeiter keine Admin-Rechte haben, kommt es gelegentlich zu Problemen bei der Bedienung der Software unter dem Benutzerkonto. Konto, Weil Die Software erfordert erweiterte Rechte.

Also was habe ich am Start, OTK (Abteilung technische Kontrolle) verlangte die Installation der dem Mikroskop beiliegenden Software Expert Prima Version 1.0 auf einem normalen Benutzercomputer mit Windows XP.

Die Installation war erfolgreich, aber das folgende Problem ist aufgetreten. Das Programm sieht die Kamera nicht und schneidet die Schnittstelle nach dem Start unter dem Benutzer ab, unter dem Administrator funktioniert die Software ordnungsgemäß.

Als erstes habe ich versucht, dem Benutzer die Erlaubnis zu geben, mit dem LOMO-Programm in das Verzeichnis zu wechseln.

Diese Aktion führte zu keinen positiven Ergebnissen. Bewaffnet mit dem Process Monitor-Dienstprogramm richte ich darin einen Filter für den Prima.exe-Prozess ein und starte die Prima Expert-Software.

Das Dienstprogramm zeigt alle betroffenen Systemressourcen an, damit Prima.exe funktioniert

Ich sortiere nach dem Detailfeld und schaue mir die betroffenen Büsche an, mich interessiert der Wert Desired Access: Read / Write.

Ich gebe dem Benutzer vollen Zugriff auf die Registrierungsordner:

HKLM\Software\Microsoft\VfWWDM-Mapper
HKLM\System\CurrentControlSet\control\MediaResources\msvideo\MSVideo.VFWWDM

Warum diese speziellen Ordner? Da Benutzer hat voller Zugriff zu HKCU ist seine Niederlassung.

Ich laufe, um zu überprüfen, ob das Programm richtig funktioniert.

Ich hoffe, der Artikel wird für unerfahrene Administratoren und enikeys nützlich sein. Ich wende diese Methode schon sehr lange an. Es ist vielseitig und hat mich noch nie im Stich gelassen.