ShimCache vs. AmCache: welches Windows-Artefakt beantwortet welche Frage

3 Min. Lesezeit

TL;DR. ShimCache beweist, dass eine Datei auf der Disk war; AmCache beweist, dass sie ausgeführt wurde, und identifiziert sie per SHA-1. ShimCache wird nur beim sauberen Shutdown geflusht — AmCache schreibt kontinuierlich. Ziehen Sie beide; sie sind Mitzeugen, keine Substitute.

ShimCache und AmCache sind die beiden registry-basierten Artefakte, die in Windows-Programmausführungs-Ermittlungen am häufigsten zitiert werden. Sie klingen austauschbar. Sie sind es nicht. Hier ist eine schnelle Referenz, um zu entscheiden, welches Sie heranziehen — abhängig von der Frage, die Sie beantworten wollen.

Entscheidungsbaum ShimCache vs. AmCache

Auf einen Blick

ShimCacheAmCache
Registry-OrtHKLM\SYSTEM\…\AppCompatCacheC:\Windows\AppCompat\Programs\Amcache.hve
KapazitätBis zu 1.024 EinträgeTausende Einträge, keine feste Obergrenze
Daten pro EintragPfad, mtime, (legacy) Execute-FlagPfad, SHA-1, Größe, Hersteller, Installationsdatum, vieles mehr
SchreibzeitpunktNur beim HerunterfahrenKontinuierlich (und in geplanten Intervallen)
Überlebt CrashNein — jüngste Einträge gehen verlorenJa — schon auf Disk
Am besten fürBeweis, dass eine Datei existiert hatBeweis, dass eine Datei gelaufen ist + Identifikation per Hash

Wann der ShimCache gewinnt

Der ShimCache enthält einen Eintrag für jede ausführbare Datei, die Windows aus Kompatibilitätsgründen lediglich untersucht hat. Das macht ihn empfindlich: Eine Binärdatei, die ein Angreifer abgelegt und sofort gelöscht hat, kann trotzdem eine ShimCache-Spur hinterlassen. Wenn Ihre Frage „Hat diese Datei jemals auf diesem Host existiert?" lautet, ist der ShimCache Ihr Verbündeter.

Er ist auch der einzige der beiden, der den $STANDARD_INFORMATION-mtime der Datei erfasst. Dieser Zeitstempel ist nicht der Ausführungszeitpunkt (ein häufiges Missverständnis, das wir in einem anderen Artikel behandeln), aber er verankert die Identität der Datei in der Zeit.

Wann AmCache gewinnt

AmCache wollen Sie, wenn die Frage lautet „Wurde diese Datei tatsächlich ausgeführt, und welche Datei genau?". Jeder AmCache-Eintrag enthält einen SHA-1-Hash, die Dateigröße, den Hersteller, das Installationsdatum — genug, um eine Binärdatei eindeutig zu identifizieren, selbst wenn die Datei auf der Festplatte inzwischen ersetzt oder gelöscht wurde.

AmCache persistiert auch. Weil Windows ihn kontinuierlich schreibt statt nur beim Herunterfahren, ist jüngste Aktivität auf einem abgestürzten oder hart neu gestarteten System eher in AmCache als im ShimCache zu finden.

Wie man sie zusammen verwendet

Behandeln Sie sie in der Praxis als Mitzeugen:

  • Ein Eintrag in beiden, ShimCache und AmCache, mit übereinstimmenden Pfaden und einem aktuellen AmCache-Zeitstempel, ist ein starker Beweis für die Ausführung.
  • Ein Eintrag nur im ShimCache sagt aus, dass die Datei zumindest irgendwann auf Disk war. Suchen Sie nach bestätigenden Beweisen (Prefetch, AmCache, Ereignisprotokolle), bevor Sie eine Ausführung behaupten.
  • Ein Eintrag nur im AmCache ohne Prefetch und ohne ShimCache bedeutet typischerweise, dass der Host seit der Aktivität nicht sauber heruntergefahren wurde — der ShimCache wurde nie auf Disk geschrieben.

Für die technischen Details des ShimCache-Binärlayouts siehe ShimCache parsen: das Binärformat von Windows 10 und 11. Um eine Hive jetzt sofort ohne Installation zu analysieren, nutzen Sie den Shimcache Parser — alles läuft im Browser.

Weiterführende Quellen

Verwandte Artikel