TL;DR. AppCompatCacheParser von Eric Zimmerman für Fallarbeit — breiteste OS-Abdeckung, CSV-Ausgabe, gut getestet. Velociraptor für Live-Triage in Größe. Mandiants ShimCacheParser, wenn eine schlanke Python-Referenz hilft. Dieses Tool für Null-Installation und Null-Upload — schnelles Browser-Triage. Bei Abweichungen die Tools kreuzweise prüfen; das Format ist heikel genug, dass zwei Parser gelegentlich Unterschiedliches sehen.
Die vier Parser, die zählen
| Tool | Sprache | Distribution | Am besten für |
|---|---|---|---|
| Mandiant ShimCacheParser | Python | Quellcode auf GitHub | Format lernen, eigene Skripte |
| Eric Zimmerman AppCompatCacheParser | C# / .NET | Einzelne Binärdatei | Fallarbeit — am verlässlichsten für Berichte |
Velociraptor Windows.Registry.AppCompatCache | VQL | Velociraptor-Server | Live-Sammlung in Flottengröße |
| Shimcache Parser (dieses Tool) | Rust → WebAssembly | Nur Browser, keine Installation | Schnelles Triage ohne Setup; Daten verlassen das Gerät nicht |
Wann was passt
Eric Zimmermans AppCompatCacheParser (der Standard für Fallarbeit)
EZs C#-Parser ist der De-facto-Standard für Offline-Analysen. Er deckt alle Windows-Versionen von XP bis 11 ab, spielt die SYSTEM-Transaktionslogs automatisch ab und liefert CSV, das nahtlos zu Timeline Explorer passt. Wenn die Ausgabe in einen Abschlussbericht geht, ist das, was Prüfer erwarten.
AppCompatCacheParser.exe -f SYSTEM --csv .
Einschränkungen: nur Windows-Binärdatei; .NET Framework / Core nötig; kein gutes Tool für Ad-hoc-Triage im Browser.
Velociraptor Windows.Registry.AppCompatCache (Sammlung in Größe)
Wenn ShimCache von Dutzenden oder Tausenden Hosts geholt werden muss, gewinnt Velociraptor. Das Artefakt liest den Cache direkt aus dem RAM laufender Endpoints — dieselbe Sicht, die das OS beim Shutdown geschrieben hätte, ohne auf den Shutdown zu warten. Siehe ShimCache aus einem Speicher-Dump extrahieren.
Einschränkungen: Velociraptor-Infrastruktur erforderlich. Für Einzelfälle überdimensioniert.
Mandiants ShimCacheParser (die Format-Referenz)
Der ursprüngliche Python-Proof-of-Concept. Weniger ausgefeilt als EZs Tool, aber nützlich, wenn man den Code lesen möchte, um zu verstehen, wie das Format dekodiert wird, oder wenn man eigene Analysen darauf scripten möchte. Reine Textausgabe; für Python-Pipelines.
python ShimCacheParser.py -t -h /pfad/zu/SYSTEM
Einschränkungen: benötigt Python 2.x (oder einen Kompatibilitäts-Fork); CSV/JSON-Ausgabe weniger poliert als bei EZ.
Dieses Shimcache Parser (keine Installation, kein Upload)
Dieses Tool deckt zwei Fälle ab, die die anderen weniger gut abdecken:
- Null-Installation-Triage: Seite öffnen, Hive ablegen, Einträge sehen. Praktisch auf einem Host ohne DFIR-Tools oder bei der Arbeit am Laptop / Leihgerät.
- Vertrauenssensible Analyse: Die Hive wird per WebAssembly komplett im Browser geparst. Die Datei verlässt die Seite nie, erreicht keinen Server, taucht in keinen Logs auf. Wichtig, wenn die Hive einem Kunden / Fall gehört, bei dem Upload tabu ist.
Trade-offs: keine CLI, keine CSV-Ausgabe (noch nicht), keine Automatisierungshaken. Für menschengesteuertes Triage, nicht für Pipelines. Für Pipelines ist EZs Tool die richtige Antwort.
Kreuzvalidierung: wenn zwei Parser uneins sind
Das Binärformat ist unerbittlich — die Format-Referenz für Windows 10/11 zeigt, warum ein einzelner Offset-Fehler den Rest kippen kann. In der Praxis stimmen Parser meist überein; reale Hives können aber leicht spec-fern sein, und Parser weichen ab bei:
- Bitness-Erkennung bei Win7-Hives — der Header sagt nicht eindeutig „x86 vs x64"; Parser raten heuristisch. Zwei Tools mit unterschiedlichen Pfaden auf derselben Hive sind das Signal.
- Pfad-Normalisierung — Backslash-Escapes, Groß/Kleinschreibung der Laufwerksbuchstaben,
\??\-Präfixe. Jeder normalisiert anders. - Leere / Platzhalter-Einträge — manche geben Leerzeilen aus, andere überspringen sie.
Wenn es zählt: zwei Parser laufen lassen und diffen. Sinnvolle Kombis:
- EZ + dieses Tool für einen schnellen Cross-Check
- EZ + Mandiant für „Python vs. C#"-Sanity-Check
- EZ + Velociraptor für „Live-Speicher vs. On-Disk-Hive"
Häufige Fallstricke
- Transaktionslogs nicht vergessen.
SYSTEM.LOG1/SYSTEM.LOG2enthalten ausstehende Schreibvorgänge; ohne sie lesen Sie eine veraltete Hive. EZs Tool spielt sie automatisch ab, andere nicht. Siehe Eine SYSTEM-Hive sichern. - On-Disk- und In-Memory-ShimCache nicht direkt vergleichen. Unterschiedliche Wahrheitsquellen — On-Disk zeigt nur den letzten sauberen Shutdown, In-Memory die aktuelle Session. Komplementär, nicht redundant.
- Keine Ausführung annehmen. Kein Parser repariert das — der Cache erfasst Untersuchung, keine Ausführung.
Weiterführende Quellen
- Eric Zimmermans AppCompatCacheParser — Referenz-Parser.
- Mandiants ShimCacheParser — ursprüngliche Python-Implementierung.
- Velociraptor
Windows.Registry.AppCompatCache— VQL-Artefakt. - Windows 10/11 AppCompatCache deep dive (Ø Security) — erklärt, warum Parser gelegentlich uneins sind.