Amcache vs Prefetch: was jedes wirklich beweist
Sowohl Amcache als auch Prefetch sind Windows-Artefakte, die Ihnen sagen, welche Binärprogramme auf einem Host waren. Sie werden ständig verwechselt, und die Verwechslung erzeugt falsche Befunde. Diese Seite ist der praktische Leitfaden dazu, was jedes wirklich beweist und wann man was verwendet.
Der wichtigste Unterschied gleich vorab:
Prefetch beweist Ausführung. Amcache beweist Präsenz.
Für die breitere Amcache-Referenz siehe die vollständige Amcache-Referenz. Für die Dateistruktur siehe Amcache-Registry-Struktur.
Was jedes aufzeichnet#
Prefetch#
Ein Verzeichnis von .pf-Dateien (C:\Windows\Prefetch\),
gepflegt vom Prefetcher-Subsystem. Jede Datei wird erstellt,
wenn ein Binärprogramm zum ersten Mal ausgeführt wird, und bei
nachfolgenden Ausführungen aktualisiert. Jede .pf-Datei enthält:
- Den Namen und Hash der ausführbaren Datei.
- Bis zu 8 Ausführungs-Zeitstempel (10 unter Windows 11) — tatsächliche Läufe.
- Eine Lauf-Zählung.
- Eine Liste von Dateien, die die ausführbare Datei während ihrer ersten 10 Sekunden Ausführung geladen hat.
- Eine Liste referenzierter Volumes.
Prefetch existiert, weil Windows die geladenen Dateien-Daten
verwendet, um diese Dateien vorzucachen, bevor das
Binärprogramm das nächste Mal läuft, was die Startzeit
beschleunigt. Der forensische Wert ist ein Nebeneffekt: Die
Existenz einer .pf ist ein Beweis, dass das Binärprogramm lief.
Amcache#
Eine einzelne Registry-Hive (C:\Windows\AppCompat\Programs\Amcache.hve),
befüllt vom geplanten Task Compatibility Appraiser. Der
Appraiser durchläuft das System periodisch (ungefähr täglich auf
Workstations) und inventarisiert jedes PE-Binärprogramm, das er
findet, wobei er Folgendes aufzeichnet:
- Vollständiger Pfad, Größe, SHA-1-Hash der ersten 31 MiB.
- PE-Metadaten (Publisher, Version, Linkdatum, Sprache).
- Anwendungskontext (
ProgramId, Installationsdatum). - Treiber- und Gerätekontext für die relevanten Kategorien.
Amcache existiert, um die Kompatibilitäts-Telemetrie-Infrastruktur von Windows zu unterstützen. Der forensische Wert ist wiederum ein Nebeneffekt.
Der fundamentale Unterschied#
| Frage | Prefetch | Amcache |
|---|---|---|
| „Lief dieses Binärprogramm auf diesem Host?" | Ja — definitiv. | Nein. |
| „War dieses Binärprogramm jemals auf der Festplatte?" | Nicht direkt (nur falls es lief). | Ja. |
| „Wann lief es?" | Ja — bis zu 8/10 Zeitstempel pro Binärprogramm. | Nein. |
| „Was ist sein SHA-1?" | Hash existiert, ist aber ein Prefetch-Hash, kein SHA-1. | Ja — SHA-1 der ersten 31 MiB. |
| „Was ist sein vollständiger Pfad?" | Wiederherstellbar. | Ja — direkt. |
| „Überlebt es eine Löschung?" | Die .pf überlebt die Löschung des Binärprogramms. |
Der Hive-Eintrag überlebt die Löschung des Binärprogramms. |
| „Überlebt es einen Systemneustart?" | Ja. | Ja. |
| „Überlebt es das direkte Löschen des Artefakts?" | Nein — .pf-Dateien können gelöscht werden. |
Nein — Hive kann gelöscht werden (Transaktionsprotokolle und VSS bewahren oft). |
Die zwei Artefakte beantworten unterschiedliche Fragen. Wo sie sich überschneiden (dieselbe Datei, derselbe Host, dasselbe Zeitfenster), bekräftigen sie einander. Wo sie auseinandergehen, ist die Divergenz selbst Information.
Wie sie sich überschneiden und auseinandergehen#
Beide vorhanden (der typische Fall)#
Ein Binärprogramm läuft, der Prefetcher erstellt eine .pf, und
der Appraiser inventarisiert es bei seinem nächsten Durchlauf. Sie
sehen das Binärprogramm in beiden Artefakten. Die Prefetch verrät
Ihnen die Laufzeiten; die Amcache verrät Ihnen den Pfad, Publisher,
Hash und die Metadaten.
Nur Amcache — „präsent, aber nie gelaufen"#
Sie finden ein Binärprogramm in *_UnassociatedFileEntries.csv
ohne entsprechende .pf. Mögliche Gründe:
- Das Binärprogramm wurde auf der Festplatte abgelegt, aber nie ausgeführt.
- Das Binärprogramm wurde ausgeführt, aber Prefetch ist
deaktiviert (selten — der Registry-Schlüssel
PrefetchParameterssteuert dies). - Das Binärprogramm wurde einmal ausgeführt, aber die
.pfwurde gelöscht (Anti-Forensik, Festplattenbereinigung, absichtliche Entfernung).
Die Lesart „präsent, aber nie gelaufen" ist die häufigste, und es
ist ein sehr anderer Befund als „ausgeführt". Ein vorbereitetes,
aber nie gelaufenes Angreifer-Tool, eine abgelegte DLL, die nur von
rundll32.exe geladen wurde (in dem Fall wird stattdessen die
.pf von rundll32.exe aktualisiert), ein Payload, der auf einen
Trigger wartete, der nie kam.
Nur Prefetch — „lief, aber kein Inventar"#
Sie finden eine .pf für ein Binärprogramm, aber keine Zeile in
Amcache. Mögliche Gründe:
- Das Binärprogramm wurde zwischen Appraiser-Läufen ausgeführt und vor dem nächsten Durchlauf gelöscht. Die Prefetch überlebte; Amcache hat die Datei nie gesehen.
- Das Binärprogramm lebt in einem Pfad, den der Appraiser nicht durchsucht.
- Der Appraiser ist deaktiviert oder hat Fehlfunktionen.
Die Lesart „lief, aber kein Inventar" ist das stärkere Signal für absichtliche Bereinigung. Das Binärprogramm lebte lange genug, um auszuführen, dann verschwand es vor dem nächsten Inventardurchlauf. Diese Zeitbedingung ist charakteristisch für:
- Cobalt Strike / Sliver / ähnliche C2-Stager, die droppen, ausführen und sich selbst löschen.
- In-Memory-Tooling, das nur kurz einen winzigen Launcher auf die Festplatte schrieb.
- Wiper-Deployment, bei dem der Operator den Dropper nach erfolgreicher Ausführung entfernte.
Beide abwesend — „nie gesehen"#
Ein Binärprogramm erscheint weder in Prefetch noch in Amcache. Der stärkste Fall für „das passierte nie auf diesem Host" — aber nicht schlüssig:
- Beide Artefakte können von einem ausreichend fähigen Angreifer gelöscht werden.
- Ein Binärprogramm, das nie ausgeführt wurde und in einem kurzen Fenster zwischen Appraiser-Läufen inventarisiert wurde, kann auch unter harmlosen Umständen in beiden fehlen.
- Auf Servern mit deaktiviertem Appraiser kann Amcache für einige Perioden völlig leer sein.
Unterschiede beim Hashing#
Eine Falle, die neue Analysten erwischt:
- Prefetch-Hash ist ein Windows-spezifischer Pfad-Hash (kein
Inhalts-Hash). Er steht im Dateinamen der
.pf:NOTEPAD.EXE-1A2B3C4D.pf. Sie können ihn nicht bei VirusTotal einreichen. - Amcache-Hash ist ein echter SHA-1 der ersten 31 MiB. Sie können ihn direkt bei VirusTotal einreichen. Siehe Amcache FileId erklärt.
Um einen Inhalts-Hash aus Prefetch zu bekommen, brauchen Sie das
Binärprogramm selbst — die .pf-Datei enthält weder das
Binärprogramm noch einen Inhalts-Hash.
Wie man sie in einer Timeline kombiniert#
Der richtige Weg, beide zu verwenden:
- Parsen Sie beide. AmcacheParser für Amcache; PECmd (ebenfalls Zimmerman) für Prefetch.
- Laden Sie beide CSVs in Timeline Explorer. Filtern Sie
Prefetch auf das interessierende Zeitfenster der
*_UnassociatedFileEntries.csvdes Hosts. - Triage aus Amcache. Wenden Sie den Filter „unsigniertes PE in benutzerbeschreibbarem Pfad" an, um verdächtige Binärprogramme zutage zu fördern.
- Bestätigen Sie die Ausführung über Prefetch. Prüfen Sie für
jede verdächtige Zeile, ob eine
.pfexistiert. Wenn ja, haben Sie einen Ausführungsbeweis. Wenn nein, nur Präsenz. - Querverweise auf Zeitstempel. Prefetch liefert präzise
Laufzeiten; der
KeyLastWriteTimestampvon Amcache liefert eine Inventarzeit, die eingrenzt, wann das Binärprogramm zum ersten Mal erschien. Der frühere von „erster Prefetch-Lauf" und „erstes Amcache-Inventar" ist Ihre beste Schätzung, wann das Binärprogramm ankam.
Mehr zum zeitlich gebundenen Amcache-Pivot in Amcache-Zeitstempel erklärt.
Schnelle Entscheidungstabelle#
| Ihre Frage | Schauen Sie auf... |
|---|---|
| Lief dieses Binärprogramm jemals auf diesem Host? | Prefetch. |
| Wann lief dieses Binärprogramm? | Prefetch (bis zu 8/10 Mal). |
| War dieses Binärprogramm auf diesem Host präsent? | Amcache. |
| Was ist sein SHA-1-Hash? | Amcache Hash. |
| Was war sein vollständiger Pfad? | Amcache FullPath (oder aus Prefetch-Metadaten wiederherstellen). |
| Wurde es mehrfach ausgeführt? | Prefetch-Lauf-Zählung. |
| Welche anderen Dateien hat es beim Laufen geladen? | Prefetch-Liste geladener Dateien. |
| Ist das Binärprogramm noch auf der Festplatte? | Dateisystem-Prüfung; Amcache sagt es nicht. |
| Hat sich der Inhalt des Binärprogramms im Laufe der Zeit geändert? | Amcache (Zeilen mit gleichem FullPath, unterschiedlichem Hash, unterschiedlichem KeyLastWriteTimestamp). |
| Ist dieses Binärprogramm auf anderen Hosts präsent? | Amcache Hash und ProgramId über gesammelte Hives. |
Anti-Forensik-Implikationen#
Beide Artefakte können manipuliert werden, aber sie haben unterschiedliche Schwächen:
- Prefetch ist pro Datei. Ein Angreifer, der nach einem
bestimmten Binärprogramm aufräumen will, muss nur die
.pfdieses Binärprogramms löschen. Einfach und gezielt. - Amcache ist monolithisch. Einen bestimmten Eintrag zu bereinigen, erfordert die Bearbeitung der Hive an Ort und Stelle — möglich, aber aufwendiger als das Löschen einer Datei. Viele Angreifer löschen einfach die ganze Hive, was laut ist (der Appraiser erstellt sie neu) und forensisch offensichtlich.
- Transaktionsprotokolle und VSS bewahren die Amcache-Historie, die der Angreifer möglicherweise nicht zu bereinigen gedacht hat. Siehe Wo Amcache.hve auf der Festplatte liegt für den VSS-Wiederherstellungs-Workflow.
In einer Untersuchung, in der Sie Manipulation vermuten, ist das Fehlen erwarteter Einträge in beiden Artefakten selbst der Befund.
Siehe auch#
- Vollständige Amcache-Referenz — das Artefakt vollständig.
- Amcache vs ShimCache — das andere große „Hat dieses Binärprogramm diesen Host berührt?"-Artefakt.
- Amcache vs SRUM — das dritte Ausführungsbeweis-Artefakt für Fragen mit längerem Fenster.
- Amcache-Zeitstempel erklärt — der richtige Weg, einen Amcache-Pivot zeitlich einzugrenzen.
- Amcache für die Malware-Untersuchung — wie Amcache und Prefetch in einem echten Eindringungs-Playbook kombiniert werden.
Möchten Sie eine Hive neben Ihren Prefetch-Daten ansehen? Legen Sie die Hive auf der Startseite des Parsers ab — sie parst vollständig in Ihrem Browser und passt schön zur CSV-Ausgabe von PECmd.
Verwandte Beiträge
- Was ist eine .pf-Datei vs. ein Amcache-Eintrag?
.pf-Dateien sind Windows-Prefetch-Datensätze — Beweis, dass ein Binärprogramm ausgeführt wurde, mit Run-Zeitstempeln und Listen geladener Dateien. Amcache-Einträge zeichnen Präsenz auf, mit dem SHA-1-Hash und Metadaten.
- Amcache vs SRUM: Präsenz vs Ressourcennutzung mit langem Fenster
SRUM verfolgt die Ressourcennutzung pro Anwendung über 30+ Tage; Amcache inventarisiert jedes auf der Festplatte präsente Binärprogramm. Hier ist, wie sie sich in einer Windows-DFIR-Timeline ergänzen.
- Amcache vs ShimCache: wann welches Artefakt gewinnt
ShimCache und Amcache zeichnen beide Binärprogramme auf, die einen Windows-Host berührt haben. Es sind unterschiedliche Mechanismen mit unterschiedlichen Grenzen — hier ist, wann man was verwendet und was ihre Überschneidung tatsächlich beweist.
- Amcache-Parser im Vergleich: AmcacheParser CLI, Browser-Tool, Volatility, RegRipper
Direkter Vergleich der vier Wege, eine Windows-Amcache.hve-Hive 2026 zu parsen — Eric Zimmermans AmcacheParser CLI, Browser-Tool, Volatility 3 und RegRipper.