Alte ShimCache-Formate: Windows XP, 2003, Vista, 7 und 8

3 Min. Lesezeit

TL;DR. Jede Windows-Generation schrieb die AppCompatCache-Struktur neu. XP nutzt ein 0xDEADBEEF-Magic und einen festen 552-Byte-Datensatz; Server 2003, Vista/2008, Windows 7/2008 R2 und Windows 8/8.1 haben je eigenen Header und Eintrags-Layout. Ein Parser muss anhand des Header-Magic verzweigen — es gibt kein einheitliches Format.

Die meiste ShimCache-Dokumentation behandelt das Windows-10/11-Layout. Aber Incident-Responder treffen weiter auf Windows-7-Domänencontroller, Server-2008-R2-Maschinen und gelegentlich ein XP-Gerät. Die On-Disk-Struktur ist dort grundlegend anders. Dies ist die Referenz pro Version.

Warum es kein einheitliches Format gibt

ShimCache ist eine interne Windows-Struktur ohne öffentliche Spezifikation. Microsoft formte sie über die Releases um, während sich die Shim-Infrastruktur weiterentwickelte. Auch Name und Pfad des Registry-Werts wanderten. Ein robuster Parser bestimmt die Version aus dem Header, bevor er einen einzigen Eintrag liest.

Spickzettel pro Version

WindowsRegistry-WertHeader-MagicEintragsform
XP (32-Bit)…\AppCompatibility\AppCompatCache0xDEADBEEFFeste 552-Byte-Datensätze, max. 96
Server 2003…\AppCompatCache\AppCompatCache0xBADC0FFE24-Byte- (x86) / 32-Byte- (x64) Einträge
Vista / 2008…\AppCompatCache\AppCompatCache0xBADC0FFEWie 2003, andere Flags
Windows 7 / 2008 R2…\AppCompatCache\AppCompatCache0xBADC0FEE32-Byte-Header; Einträge tragen das Insert-Flag
Windows 8 / 2012…\AppCompatCache\AppCompatCache0x00000080Eintragssignatur 00ts variabler Länge
Windows 8.1 / 2012 R2…\AppCompatCache\AppCompatCache0x00000080Eintragssignatur 10ts

(Das moderne 10ts/00ts-Layout von Windows 10/11 wird separat behandelt.)

XP — der Ausreißer

Windows XP ähnelt nichts Späterem: ein 0xDEADBEEF-Magic, feste 552-Byte-Datensätze, ein hartes Limit von 96 Einträgen und UTF-16-Pfade auf feste Länge aufgefüllt. Es speicherte auch einen Letzte-Aktualisierung-Zeitstempel und ein Dateigrößenfeld, die spätere Versionen verwarfen. Sehen Sie 0xDEADBEEF, sind Sie im XP-Gebiet und keine moderne Parse-Logik gilt.

Windows 7 — das, dem Sie am häufigsten begegnen

Windows 7 / Server 2008 R2 ist in der IR weiterhin verbreitet. Magic 0xBADC0FEE, ein 32-Byte-Header und Einträge mit Pfad, letzter Änderungszeit der Datei und — besonders nützlich — einem Execute-Flag, das ab Windows 8 entfernt wurde. Unter Windows 7 ist ein gesetztes Flag eine vertretbare (nicht absolute) Untermauerung der Ausführung; extrapolieren Sie das nicht auf neuere Systeme, wie in beweist der ShimCache Ausführung erklärt.

Der 8/8.1-Übergang

Windows 8 führte den Eintrag variabler Länge mit Eintragssignatur (00ts) ein, 8.1 hob sie auf 10ts. Das ist der strukturelle Vorfahr des Windows-10/11-Formats; ein Parser, der 8.1 beherrscht, ist fast bereit für 10.

Sie ohne Toolchain parsen

Der Shimcache Parser erkennt das Header-Magic automatisch und verzweigt zum richtigen Decoder für XP, 2003, Vista, 7, 8, 8.1 und 10/11 — so lesen Sie eine alte SYSTEM-Hive im Browser, ohne alte Tools bereitzustellen. Zur Sammlung auf diesen älteren Systemen siehe eine SYSTEM-Hive beschaffen.

Weiterführende Quellen

Verwandte Artikel