Der Windows-ShimCache — auch Application Compatibility Cache (AppCompatCache) genannt — gehört zu den am häufigsten zitierten Artefakten in der modernen Windows-Incident-Response. Und er gehört zu den am häufigsten missverstandenen. Diese kurze Einführung erklärt, was er tatsächlich aufzeichnet, wo er liegt und wie Forensiker ihn interpretieren sollten (und nicht sollten).
Was der ShimCache aufzeichnet
Wenn Windows eine ausführbare Datei prüft, um zu entscheiden, ob ein Kompatibilitäts-Shim angewendet werden muss, wird diese Prüfung im ShimCache vermerkt. Pro System werden bis zu 1 024 Einträge gespeichert, jeder mit mindestens:
- dem vollständigen Dateipfad der ausführbaren Datei,
- dem
$STANDARD_INFORMATION-Änderungszeitstempel der Datei, - und – in älteren Windows-Versionen – Flags dazu, ob die Datei ausgeführt wurde.
Der Cache liegt im flüchtigen Speicher, solange das System läuft, und wird erst beim Herunterfahren in die Registry geschrieben. Dieses Timing-Detail ist entscheidend: Ein harter Neustart oder eine abgeschaltete VM kann jüngste Einträge vollständig verlieren.
Wo er liegt
Der ShimCache liegt in der SYSTEM-Hive unter:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache
Der Wert ist ein einzelner Binär-Blob, dessen Struktur je nach Windows-Version variiert — XP, 7, 8, 8.1, 10 und 11 verwenden jeweils ein leicht anderes Layout. Eine Offline-Analyse bedeutet, den Wert zu extrahieren und nach dem passenden Schema zu dekodieren. Genau das tut dieses Tool — vollständig im Browser, ohne Upload.
Forensischer Wert
Der ShimCache dient meist dazu, die Existenz eines Programms zu belegen: eine bestimmte Binärdatei war zu irgendeinem Zeitpunkt auf der Festplatte eines bestimmten Hosts vorhanden. Das ist nützlich, um:
- die Anwesenheit von Malware nachzuweisen, auch nachdem die Datei gelöscht wurde,
- aus Prefetch oder AmCache aufgebaute Ausführungs-Timelines anzureichern,
- Befunde aus EDR- oder Sysmon-Telemetrie zu untermauern.
Drei Fallstricke, die wehtun
- Der Zeitstempel ist die mtime der Datei, nicht der Ausführungszeitpunkt. Eine ohne Zeitstempel-Erhalt kopierte Binärdatei zeigt ihre ursprüngliche mtime.
- Ein Eintrag ist kein Beweis für eine Ausführung. In Windows 10 und 11 wurde das Ausführungs-Flag im Cache komplett entfernt. Kombinieren Sie den ShimCache mit Prefetch, AmCache und Ereignisprotokollen, bevor Sie eine tatsächliche Ausführung behaupten.
- Der Cache füllt sich, verdrängt alte Einträge und wird beim Herunterfahren geleert. Jüngste Einträge, die es nie auf die Platte geschafft haben, sind einfach weg.
Sorgfältig genutzt und mit anderen Artefakten korroboriert, ist der ShimCache ein Pivot-Punkt mit hohem Signalwert. Behandeln Sie jeden Eintrag als zu bestätigende Hypothese, nicht als Schlussfolgerung.
Wohin als Nächstes
Wer tiefer einsteigen möchte, findet den Rest des Blogs in zwei Themenclustern.
Den ShimCache verstehen
- ShimCache vs. AmCache: welches Windows-Artefakt beantwortet welche Frage
- Beweist der ShimCache, dass ein Programm ausgeführt wurde?
- Wo wird der ShimCache gespeichert, und wann wird er geschrieben?
- Prefetch, AmCache, ShimCache: schnelle Referenz für Programmausführungs-Beweise
- ShimCache parsen: das Binärformat von Windows 10 und 11
In Ermittlungen einsetzen
- Eine Windows-SYSTEM-Hive für die Offline-ShimCache-Analyse sichern
- Malware-Jagd mit dem ShimCache: ein Schritt-für-Schritt-Workflow
- Den ShimCache in Ransomware-Untersuchungen nutzen
- ShimCache aus einem Speicher-Dump extrahieren
- Können Angreifer den ShimCache löschen? Anti-Forensik und Erkennung
- Eine Programmausführungs-Timeline aus einer SYSTEM-Hive bauen
- ShimCache-Parser im Vergleich: Mandiant, Zimmerman, Velociraptor und dieses Tool