Was ist RecentFileCache.bcf?
Eine kurze Einführung in das Windows-7-AppCompat-Artefakt: wo es lebt, was es aufzeichnet und warum es 2026 immer noch in Triage-Fällen auftaucht.
RecentFileCache.bcf ist das Artefakt, dessen Existenz Sie vergessen, bis eine Windows-7-Maschine auf Ihrem Tisch landet. Es ist klein, eng gefasst und kurzlebig. Es zeichnet die vollständigen Pfade ausführbarer Dateien auf, die der Application-Experience-Scanner seit dem letzten Appraisal-Lauf gesehen hat. Keine Zeitstempel pro Eintrag. Keine Hashes. Keine Signierer. Nur eine Liste von Pfaden in UTF-16LE.
Und diese Liste ist auf dem richtigen Host eines der saubersten „das lief kürzlich"-Signale, die Sie von der Festplatte ziehen können.
Wo es lebt
C:\Windows\AppCompat\Programs\RecentFileCache.bcf
Dasselbe Verzeichnis wie Amcache.hve auf späteren Builds. Die beiden Artefakte koexistieren fast nie als primäre Beweise. Win7 und Server 2008 R2 geben Ihnen die BCF und eine dünne Amcache. Windows 8 und neuer tötet die BCF und lehnt sich vollständig an Amcache.hve an. Wenn Sie eine BCF auf einem Win10-Host finden, hat jemand eine ungewöhnliche Entscheidung getroffen, und Sie sollten herausfinden, wer.
Was sie tatsächlich enthält
Einen 20-Byte-Header, dann eine dichte Folge längenpräfixierter UTF-16LE-Pfadstrings bis EOF.
| Feld | Größe | Hinweise |
|---|---|---|
| Signatur | 4 | 0x0fffeefe |
| Unbekannt x3 | 12 | Beobachtet 0x00002211, 3, 1 |
| Mögliche Prüfsumme | 4 | Wird von keinem öffentlichen Parser validiert |
| Datensätze... | Wiederholt bis EOF | |
| Zeichenzahl | 4 | Inklusive abschließendem NUL |
| Pfad | var | UTF-16LE, NUL-terminiert |
Das ist es. Keine Zeitstempel. Keine Hashes. Keine PE-Metadaten. Das Format hat sich seit Windows 7 SP1 nicht geändert, was bedeutet, dass das Parsen nachsichtig ist und Tools übereinstimmen.
Wenn Sie reichere Telemetrie aus derselben Ära möchten, brauchen Sie Amcache.hve, Prefetch oder Shimcache. Die BCF ist die billige Spur, nicht das Urteil.
Wer dort hinein schreibt
Der Application-Experience-Dienst (AeLookupSvc auf Win7) füttert die Datei zur Laufzeit. Die geplante Aufgabe Microsoft\Windows\Application Experience\ProgramDataUpdater leert sie in etwa täglicher Kadenz und befördert Überlebende in Amcache.hve. Der Lebenszyklus hat Konsequenzen für die Triage, behandelt in Application Experience und ProgramDataUpdater.
Die Kurzfassung: Ein Pfad landet in der Datei, nachdem die ausführbare Datei den AppCompat-Codepfad gekreuzt hat. Der nächste ProgramDataUpdater-Lauf schreibt die Datei neu, oft kürzer als zuvor. Wenn der Appraiser deaktiviert ist, sammelt die Datei sich unbegrenzt an und Sie bekommen ein längeres Fenster. Ich habe 18 Monate alte BCFs auf Hosts gesehen, auf denen jemand die Aufgabe mit einem Telemetry-Remover-Skript deaktiviert hat.
Pfad-Semantik
Ein typischer Eintrag sieht so aus:
\??\C:\Users\bob\AppData\Local\Temp\setup.exe
Das \??\-Präfix ist die Notation des NT-Object-Managers für einen DOS-artigen Pfad. Behandeln Sie es als C:\ und ziehen Sie weiter. Anständige Parser strippen es für Sie; behandeln Sie den Rest wie jeden anderen Win32-Pfad.
Warum es 2026 immer noch wichtig ist
Zwei Gründe, von denen keiner verschwunden ist.
Erstens, Windows 7 ist nicht gestorben. Industrielle Steuerung, Kiosk-Flotten, medizinische Endpunkte, ATMs, eingebettete MES-Boxen. Es gibt immer noch Millionen von Win7- und Server-2008-R2-Systemen im Feld. Wenn eines kompromittiert wird, parsen Sie 2026 BCF-Dateien genau so, wie Sie es 2014 taten.
Zweitens landen alte Images weiterhin auf Tischen. Cold-Case-Neuermittlungen, M&A-Due-Diligence, zivilrechtliche Discovery. Ein Win7-Disk-Image von 2017 ist genauso relevant in der Woche, in der es in Ihrer Queue auftaucht.
Grenzen, ehrlich gesagt
- Keine Per-Eintrag-Zeitstempel. Die eigene
LastWriteTimeder Datei ist eine grobe obere Schranke dafür, wann der letzte Eintrag landete, und sagt Ihnen nichts über frühere. - Die Datei wird neu geschrieben, nicht angehängt. Einträge verschwinden zwischen Läufen.
- Nur ausführbare Dateien, die den AppCompat-Pfad des Loaders gekreuzt haben. In-Memory-PE-Loader, reflective DLLs, bestimmte LOLBin-Tradecraft berühren diese Datei nie.
- Keine Metadaten über die ausführbare Datei. Ein Pfad ist eine Identitätsbehauptung, keine Identität. Paaren Sie mit
Amcache.hveoder einem Hash von der Festplatte, wenn die Binärdatei noch da ist. - Keine Benutzerzuordnung. Pro Maschine, nicht pro Benutzer. Die „Wer hat das ausgeführt?"-Frage braucht separate Beweise aus EVTX oder Registry.
Sie parsen
Der Parser auf dieser Seite nimmt eine .bcf und gibt eine strukturierte Liste von Pfaden aus. Alles läuft in Ihrem Browser. Die Datei wird nie hochgeladen, was wichtig ist, wenn die Datei von einem regulierten Kunden stammt, dessen Anwälte sich um die Beweiskette kümmern.
Für die Formatdetails und einen ausgearbeiteten Hex-Dump lesen Sie den nächsten Beitrag in der Serie.