Skip to content

ShellBags-Zeitstempel erklärt: was jede Zeit bedeutet

Schlüssel-LastWrite, aus MRUListEx abgeleitete letzte Interaktion und eingebettete FAT-Zeiten: was jeder ShellBags-Zeitstempel belegt, mit Beispiel und Fallen.

Veröffentlicht am 6 Min. Lesezeit

TL;DR. Ein ShellBag-Eintrag umfasst drei verschiedene Arten von Zeit. Der LastWrite des Schlüssels (ein FILETIME mit 100 ns) gibt an, wann sich dieser BagMRU-Schlüssel zuletzt geändert hat, was von seinen Kindern abhängt. Die „letzte Interaktion“ ist abgeleitet: Das Kind an erster Stelle der MRUListEx eines Elternschlüssels war beim Schreiben des Elternschlüssels das zuletzt genutzte und erbt daher dessen LastWrite. Die eingebetteten Erstellungs-, Änderungs- und Zugriffszeiten sind die Dateisystemzeiten des Ordners im FAT-Format mit 2 Sekunden Auflösung, erfasst beim Aufzeichnen des Items und danach nicht aktualisiert. Nur die zweite Art kommt „wann war der Benutzer dort“ nahe, und das nur für ein Kind pro Ordner.

Wird ein ShellBag-Befund angefochten, dann über die Zeitstempel. Das Artefakt enthält viele Zeiten; nur sehr wenige bedeuten, was der Leser annimmt.

Die drei Arten von Zeit

ZeitHerkunftFormatBedeutung
LastWrite des SchlüsselsRegistry-Metadaten des BagMRU-UnterschlüsselsFILETIME, UTC, 100 nsWann sich in diesem Schlüssel zuletzt etwas geändert hat: Kind hinzugefügt, MRUListEx neu geschrieben, Wert aktualisiert.
Letzte Interaktion (abgeleitet)LastWrite des Elternschlüssels, für das Kind an Position 0 der MRUListExFILETIME, UTCWann dieses Kind zum zuletzt genutzten Kind des Elternschlüssels wurde (oder als solches bestätigt wurde).
Eingebettete Erstellung / Änderung / ZugriffDas Shell-Item und sein 0xBEEF0004-BlockFAT-Datum/Uhrzeit, 2 s AuflösungDie Dateisystemzeiten des Ordners zum Zeitpunkt, als das Shell-Item erstellt wurde.

Die ersten beiden sind Registry-Zeiten. Die dritte sind Dateisystem-Metadaten, die in die Registry kopiert wurden.

Wie MRUListEx aus einer Schlüsselzeit eine Interaktionszeit macht

Jeder BagMRU-Schlüssel enthält einen binären Wert MRUListEx: eine Liste von 32-Bit-Slotnummern, zuletzt genutzte zuerst, abgeschlossen mit 0xFFFFFFFF. Navigiert der Benutzer in eines der Kinder, schiebt der Explorer dessen Slot nach vorn und schreibt MRUListEx neu. Das Neuschreiben eines Werts aktualisiert den LastWrite des Schlüssels.

Also war beim letzten Schreiben des Elternschlüssels das Kind an Position 0 dasjenige, das gerade genutzt wurde. Das ist die Logik hinter der Spalte „last interacted“ in Werkzeugen wie ShellBags Explorer und SBECmd, die 4n6k mit Schritt-für-Schritt-Tests dargelegt hat. Sie gilt nur für Position 0. Für alle anderen Kinder sagt der LastWrite des Elternschlüssels nichts darüber, wann sie zuletzt genutzt wurden.

ShellBags Explorer zeigt für manche Einträge auch eine Zeit „first interacted“. Die Idee: Ein Schlüssel ohne Unterschlüssel hatte keine Kinder zum Umsortieren, sein LastWrite liegt also nahe an seiner Erstellung. Behandeln Sie das als Näherung und lesen Sie die Dokumentation des Werkzeugs, bevor Sie es zitieren.

Ein durchgerechnetes Beispiel

Der ShellBags Parser enthält ein synthetisches Sample (fiktive Daten), in dem das Konto svc_backup eine Finanzfreigabe durchsucht. Vereinfacht sehen die relevanten Schlüssel so aus:

BagMRU\1\0\0                    \\FILESRV01\Finance   LastWrite 2026-09-14 10:36:18 UTC
  values: 0 = Payroll, 1 = Board
  MRUListEx = 1, 0, FFFFFFFF
BagMRU\1\0\0\0                  Payroll               LastWrite 2026-09-14 10:32:40 UTC (no subkeys)
BagMRU\1\0\0\1                  Board                 LastWrite 2026-09-14 10:36:18 UTC (no subkeys)

Was sich sagen lässt:

  • Board steht in Finance an MRU-Position 0, seine letzte Interaktion ist also der LastWrite des Schlüssels Finance: 10:36:18 UTC.
  • Payroll steht an Position 1. Der LastWrite von Finance datiert es nicht. Der LastWrite seines eigenen Schlüssels (10:32:40) ist der Zeitpunkt der letzten Änderung dieses Schlüssels; da er keine Kinder hat, ist das eine vernünftige Näherung für die erste Aufzeichnung, kein Beweis für den letzten Besuch.
  • Die Reihenfolge ist belastbar: Board wurde später genutzt als Payroll.

Im Tool wird „Letzte Interaktion“ nur für Einträge an MRU-Position 0 gefüllt, und die Ansicht „Zeitachse“ greift für die übrigen auf „Letzter Schreibzugriff des Schlüssels“ zurück. So sehen Sie immer, nach welcher Art von Zeit Sie sortieren.

Was die eingebetteten Zeiten sind

Ein File-Entry-Shell-Item enthält an Offset 8 eine Änderungszeit. Seit Windows XP ergänzt sein 0xBEEF0004-Erweiterungsblock Erstellungs- und letzte Zugriffszeit, laut der libfwsi-Spezifikation. Es sind die Zeiten des Verzeichnisses selbst, beim Erstellen des Items aus dem Dateisystem gelesen. Die Tests von 4n6k zeigten, dass sie nach der ersten Erstellung des Shell-Items nicht aktualisiert werden.

Nützlich für:

  • Die Datierung eines Ordners, den es nicht mehr gibt (siehe gelöschte Ordner).
  • Den Abgleich eines Ordners auf einem Wechseldatenträger mit demselben Ordner in einem sichergestellten Abbild.
  • Den Nachweis, dass ein Ordner kurz vor dem Besuch angelegt wurde (ein Staging-Muster).

Nicht nützlich für: die Aussage, wann der Benutzer ihn geöffnet hat.

Formate und Genauigkeit

  • FAT-Datum/Uhrzeit. Zwei 16-Bit-Werte: Datum (Jahr seit 1980, Monat, Tag) und Uhrzeit (Stunde, Minute, Sekunden/2). Microsoft dokumentiert das Layout bei DosDateTimeToFileTime. Die Sekunden sind immer gerade. Rechnen Sie mit bis zu 1 Sekunde Abweichung gegenüber einem FILETIME aus der $MFT oder dem USN-Journal.
  • Zeitzone. libfwsi dokumentiert die FAT-Zeiten in Shell-Items als UTC. Registry-LastWrite-Zeiten sind UTC-FILETIMEs. Stellen Sie in Berichten alles in UTC dar und rechnen Sie nur für die Anzeige um.
  • FAT-Dateisysteme. Bei Ordnern auf FAT-Volumes (viele USB-Sticks) speichert das Dateisystem selbst Ortszeit, und der letzte Zugriff ist nur ein Datum. Microsofts Seite File Times weist darauf hin, dass die Zugriffszeit unter FAT eine Auflösung von einem Tag hat. Lesen Sie aus einem Zugriffswert von einem FAT32-Stick keine Uhrzeit heraus.

Fallen, die ich in Berichten sehe

  1. „Ordner X wurde zuletzt um [Schlüssel-LastWrite] geöffnet.“ Falsch, außer X steht in seinem Elternschlüssel an MRU-Position 0, und selbst dann gehört die Zeit zum Elternschlüssel.
  2. „Der Benutzer griff um [eingebettete Zugriffszeit] auf den Ordner zu.“ Das ist die Dateisystem-Zugriffszeit des Ordners zum Zeitpunkt der Aufzeichnung.
  3. Den LastWrite eines Elternschlüssels für alle Kinder verwenden. Nur ein Kind erbt ihn.
  4. Annehmen, jeder Schreibvorgang stamme von einer Navigation. Ansichtsänderungen (Sortierung, Symbolgröße) und Explorer-interne Pflege schreiben ebenfalls Schlüssel. Die Zeit grenzt ein Ereignis ein; sie benennt es nicht.
  5. Minutengenaue Aussagen ohne Bestätigung. Registry-Schreibvorgänge können dem Klick hinterherhinken. Gleichen Sie mit LNK-Dateien, Jump Lists, Ereignisprotokollen und dem USN-Journal ab, bevor Sie eine genaue Uhrzeit nennen.
  6. Nicht eingespielter Hive. Bei einem dirty Hive können die jüngsten LastWrite-Werte in den Transaktionsprotokollen stehen.
  7. Uhrprobleme. Eine falsche oder bewusst verstellte Systemuhr verschiebt alle Registry-Zeiten. Prüfen Sie die Ereignisse zur Zeitänderung.

So formulieren Sie es

Eine belastbare Formulierung: „Der BagMRU-Eintrag für \\FILESRV01\Finance\Board war das zuletzt genutzte Kind von \\FILESRV01\Finance, als dieser Schlüssel zuletzt geschrieben wurde, am 2026-09-14 um 10:36:18 UTC. Das ist damit vereinbar, dass das Konto zu diesem Zeitpunkt oder kurz davor zu diesem Ordner navigiert ist.“ Zitieren Sie danach das bestätigende Artefakt.

Häufige Fragen

Ist der LastWrite eines ShellBags-Schlüssels der Zeitpunkt, an dem der Ordner zuletzt geöffnet wurde?

Im Allgemeinen nicht. Der LastWrite eines BagMRU-Schlüssels ändert sich, wenn sich seine eigenen Werte ändern, also wenn Kinder hinzukommen oder umsortiert werden. Nur das Kind an erster Stelle der MRUListEx eines Elternschlüssels lässt sich dessen LastWrite zuordnen.

Sind die Erstellungs-, Änderungs- und Zugriffszeiten in einem ShellBag Zugriffszeiten des Benutzers?

Nein. Es sind die Dateisystemzeiten des Ordners selbst, beim Aufzeichnen in das Shell-Item kopiert und bei späteren Besuchen nicht aktualisiert.

Warum enden ShellBags-Zeiten auf gerade Sekunden?

Die eingebetteten Zeiten werden im FAT-(DOS-)Datums- und Zeitformat gespeichert, das für die Uhrzeit eine Auflösung von 2 Sekunden hat.

Verwandte Artikel

Verwandte Artikel