Sysinternals: Procmon – Process Tree

Hallo zusammen,

heute möchte ich mal wieder einen Teil des Prozessmonitors ProcMon beleuchten, der zwar unheimlich nützlich sein kann, oft jedoch in den Hintergrund gerät – der Process Tree. Für die Demonstration habe ich ein neues Capture gestartet, anstatt das Capture aus den vorherigen Posts (Beitrag 1, Beitrag 2) weiter zu verwenden, da man hier glaube ich die wichtigsten Funktionen besser erklären kann. Zunächst ein Screenshot zur Übersicht:

Der ProcessTree liefert uns eine sehr übersichtliche Ansicht, welche Prozesse während des Captures liefen, und wer (oder besser gesagt welcher Prozess) die anderen Prozesse gestartet hat, die Übersicht seht ihr in der Baumansicht auf der linken Seite. Rechts daneben werden zeilenweise Informationen zu dem jeweiligen Prozess angezeigt. Standardmäßig sind die Spalten wie im Screenshot zu sehen aktiv: Beschreibung, Pfad zum Image des Prozesses, Lebenszeit (LifeTime), Firma, Besitzer des Prozesses, Kommandozeile, Start und Endzeit des Prozesses.
Sofort fallen uns die spärlichen Optionen auf, die wir im ProcessTree-Fenster zur Verfügung haben. Es gibt 2 Checkboxen und 3 Buttons – nachdem die Buttons „Go to Event“, „Include Process“ und „Include Subtree“ relativ selbsterklärend sein sollten, werde ich kurz auf die beiden Checkboxen „Only show processes still running at end of current trace“ und „Timelines cover displayed events only“ eingehen.

Die erste Checkbox bedeutet ca. so viel wie „Zeige mir nur alle Prozesse die am Ende meines Captures noch laufen“. Prozesse die während eines Captures gestartet und dann auch wieder beendet wurden (auf welche Weise auch immer – ob ‚ordentlich‘ oder über den TaskManager abgebrochen), werden im ProcessTree mit einem dunkelgrünen Balken angezeigt – siehe im Screenshot die notepad.exe, die ich während dem Capture über Ausführen gestartet habe, und gegen Ende des Captures wieder geschlossen habe. Wird die Ceckbox aktiviert, verschwindet der Prozess aus der aktuellen Ansicht.

Die Zweite Checkbox „Timelines cover diesplayed Events only“ ist vielleicht etwas ungünstig formuliert. Was sie letztendlich bewirkt ist, dass die Ansicht der LifeTime-Balken im ProcessTree umgeschaltet wird zwischen der Lebenszeit des Prozesses während des Captures oder der Lebenszeit des Prozesses gemessen an der Boot-Zeit des Systems. Ich glaube jetzt nicht dass das wesentlich besser formuliert ist, daher würde ich es kurz anhand eines weiteren Screenshots erklären – zum Vergleich nochmal der Screenshot von oben, daneben das selbe Capture im ProcessTree, nur diesmal mit der 2. Checkbox aktiviert.

Aktiviert
Deaktiviert

Relativ zur Bootzeit bedeutet, dass die Lebenszeit der Prozesse nicht auf das Capture bezogen wird, sondern vom Boot des Betriebssystems, bis zum Ende des Captures berechnet wird. Das Capture selbst wurde nicht direkt beim Hochfahren von Windows gestartet. Im linken Bild sieht man, dass alle Prozesse die ins Capture eingeflossen sind, abgesehen vom Notepad, während des ganzen Captures aktiv waren. Rechnen wir jetzt aber von der Boot-Zeit des Systems ab, sehen wir im rechten Screenshot, dass z.B. auch die Procmon.exe selbst, die logischerweise während des ganzen Captures aktiv war, erst relativ spät gestartet wurde, wohingegen andere Prozesse wie „System“ oder die svchost.exe schon von Beginn des Systemstarts an aktiv sind. Ich hoffe der Unterschied in der Ansicht ist damit einigermaßen einleuchtend erklärt.

Der Vorteil den uns der ProcessTree bietet liegt gerade für kurzlebige Prozesse auf der Hand. Wir können mit ihm einfach feststellen, welche Prozesse vielleicht nur den Bruchteil einer Sekunde aktiv waren, ohne uns durch vielleicht mehrere Millionen Events klicken zu müssen, um einen verdächtigen Prozess zu finden, der im schlimmsten Fall nur eine handvoll Events selbst geworfen hat. Das wäre ohne den ProcessTree die sprichwörtliche Suche nach der Nadel im Heuhaufen. Haben wir dann einen Prozess gefunden, der uns interessiert, können wir einfach über die 3 unteren Buttons entsprechende Filter setzen und direkt zum Event „Process Start“ springen.

Bis dahin, viel Spass mit dem ProcessTree!
Hannes

Dieser Eintrag wurde veröffentlicht in IT. Lesezeichen auf den Permanentlink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert