Wo Windows Jump-List-Dateien speichert (Win 7, 10, 11)
TL;DR — Jump Lists liegen in zwei benutzerbezogenen Verzeichnissen unter dem
Roaming-Profil: %AppData%\Microsoft\Windows\Recent\AutomaticDestinations\ und
%AppData%\Microsoft\Windows\Recent\CustomDestinations\. Diese Pfade sind
unter Windows 7, 8, 10 und 11 identisch.
AutomaticDestinations-Speicherort
Vom Shell selbst geschriebene Dateien, sobald ein Benutzer ein Dokument öffnet:
%AppData%\Microsoft\Windows\Recent\AutomaticDestinations\
Aufgelöst lautet das
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\.
Jede Datei trägt den Namen <AppID>.automaticDestinations-ms, also etwa
<AppID>.automaticDestinations-ms, wobei <AppID> eine 16-stellige
Hex-Zeichenfolge ist. Die Datei selbst ist ein OLE Compound File, dessen
nummerierte Streams LNK-Strukturen sind, geordnet über einen DestList-Stream.
CustomDestinations-Speicherort
Dateien, die die Anwendung über die ICustomDestinationList-API für ihre
angehefteten Einträge und benutzerdefinierten Kategorien („Tasks", „Recent"
usw.) schreibt:
%AppData%\Microsoft\Windows\Recent\CustomDestinations\
Gleiche Namenskonvention: <AppID>.customDestinations-ms. Das Format ist eine
flache Folge von LNK-Strukturen mit einem kleinen vorangestellten Header — kein
OLE Compound File.
Pro Benutzer vs. pro Rechner
Beide Verzeichnisse sind benutzerbezogen und wandern mit dem Profil mit (sie
liegen unter AppData\Roaming, nicht Local). Es gibt keinen
maschinenweiten Jump-List-Speicher. Auf einem laufenden Host ermitteln Sie den
aktuellen Benutzer mit echo %AppData%; auf einem gemounteten Image gehen Sie
\Users\ durch und ordnen jeden Profilordner über
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID> seiner SID
zu, falls Sie die Aktivität einem Konto zuordnen müssen.
Auf einem forensischen Image
Mounten Sie das Image und ziehen Sie den gesamten Recent-Baum pro Benutzer:
\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\
\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations\
\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\
Der übergeordnete Recent\-Ordner enthält außerdem klassische
.lnk-Verknüpfungen — nützliche Bestätigung, aber ein separates Artefakt. Die
beiden *Destinations-Unterordner existieren seit Windows 7 unverändert, sodass
dasselbe Sammelskript unter Windows 7, 8.1, 10 und 11 funktioniert. Auf einem
laufenden System hält explorer.exe in der Regel offene Handles; sammeln Sie
aus einer Volume Shadow Copy
(\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\…) oder arbeiten Sie auf
einem Image.
Wie eine AppID aussieht
Das Präfix des Dateinamens ist eine 16-stellige hexadezimale Zeichenfolge in
Kleinbuchstaben — zum Beispiel 1b4dd67f29cb1962. Es handelt sich um einen
gekürzten CRC64-Hash, der über den Pfad der ausführbaren Datei der Anwendung
(und in einigen Fällen über zusätzliche Identifikationsdaten) berechnet wird,
sodass dieselbe Binärdatei am selben Pfad auf jeder Maschine dieselbe AppID
ergibt. Genau diese Stabilität macht veröffentlichte AppID-Listen nützlich:
Quick Access und andere im Shell angeheftete Elemente verwenden bekannte,
stabile AppIDs, die Analysten auf den ersten Blick erkennen. Verschieben oder
benennen Sie die ausführbare Datei um, ändert sich die AppID, und die alte
Jump-List-Datei bleibt verwaist im Ordner zurück.
Für das Byte-Layout dieser Dateien auf der Festplatte siehe die Aufschlüsselung des Dateiformats.