Den Windows-ShimCache (AppCompatCache) verstehen

3 Min. Lesezeit

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

  1. Der Zeitstempel ist die mtime der Datei, nicht der Ausführungszeitpunkt. Eine ohne Zeitstempel-Erhalt kopierte Binärdatei zeigt ihre ursprüngliche mtime.
  2. 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.
  3. 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

In Ermittlungen einsetzen