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.
Auf einen Blick
| ShimCache | AmCache | |
|---|---|---|
| Registry-Ort | HKLM\SYSTEM\…\AppCompatCache | C:\Windows\AppCompat\Programs\Amcache.hve |
| Kapazität | Bis zu 1.024 Einträge | Tausende Einträge, keine feste Obergrenze |
| Daten pro Eintrag | Pfad, mtime, (legacy) Execute-Flag | Pfad, SHA-1, Größe, Hersteller, Installationsdatum, vieles mehr |
| Schreibzeitpunkt | Nur beim Herunterfahren | Kontinuierlich (und in geplanten Intervallen) |
| Überlebt Crash | Nein — jüngste Einträge gehen verloren | Ja — schon auf Disk |
| Am besten für | Beweis, dass eine Datei existiert hat | Beweis, 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
- Eric Zimmermans AppCompatCacheParser — Referenzimplementierung in C#.
- Velociraptors
Windows.Registry.AppCompatCache-Artefakt — Live-System-Sammlungslogik. - ShimCache & AmCache forensic analysis (Mehrnoush) — ausführlicher Walkthrough mit Fallbeispielen.