¿Qué es Windows Prefetch? (glosario)
Windows Prefetch es un directorio de archivos .pf en
C:\Windows\Prefetch\ mantenido por el subsistema Prefetcher.
Cada archivo .pf se crea la primera vez que un binario se
ejecuta y se actualiza en corridas posteriores. El archivo
registra hasta 8 marcas de tiempo de ejecución (10 en Windows 11),
un contador de corridas y la lista de archivos que el binario
cargó en sus primeros 10 segundos de ejecución.
Es el artefacto más fuerte de Windows para probar ejecución.
Un .pf existe si y solo si el binario realmente corrió
(asumiendo que Prefetch está habilitado, lo que es por defecto en
los desktops de Windows).
Qué contiene cada .pf#
| Campo | Valor |
|---|---|
| Nombre del ejecutable | Del nombre del archivo, p. ej. NOTEPAD.EXE. |
| Hash de ruta | Sufijo en el nombre del archivo — no un hash de contenido. |
| Contador de corridas | Cuántas veces corrió el binario. |
| Última(s) hora(s) de corrida | Hasta 8 marcas de tiempo (10 en Win 11). |
| Archivos cargados | DLLs y archivos de datos referenciados en los primeros ~10s. |
| Volúmenes referenciados | Números de serie del volumen origen. |
Prefetch vs Amcache#
| Prefetch | Amcache | |
|---|---|---|
| ¿Prueba ejecución? | Sí | No — solo presencia |
| ¿Registra hash? | No (solo hash de ruta) | Sí (SHA-1) |
| ¿Registra horas de corrida? | Sí, hasta 8/10 | No |
| ¿Registra publisher / versión? | No | Sí |
| ¿Sobrevive al borrado del binario? | Sí (solo borrado del archivo) | Sí |
| ¿Activado por defecto? | Sí (desktops) | Sí |
| Por defecto común en Server | A menudo desactivado | Activado |
Para cobertura completa, ver Amcache vs Prefetch.
Cuándo gana Prefetch#
- "¿Se ejecutó realmente este binario?" — la existencia de
.pfes definitiva. - "¿Cuándo corrió?" — hasta 8/10 marcas de tiempo por binario.
- "¿Qué cargó?" — la lista de archivos cargados a menudo hace aflorar DLLs que el atacante inyectó.
Cuándo gana Amcache#
- "¿Cuál es el SHA-1?" — Prefetch no tiene hash de contenido.
- "¿Estuvo este binario presente pero nunca corrió?" — Amcache lo captura; Prefetch no existe para binarios que nunca corrieron.
- "Evidencia de driver / dispositivo" — Amcache tiene schemas dedicados; Prefetch solo registra ejecución PE de espacio usuario.
Herramientas de parseo#
- PECmd (Zimmerman) — produce CSV estructurado desde un directorio Prefetch. La herramienta estándar para parsear Windows Prefetch.
- Windows-Prefetch-Parser — alternativa Python más antigua.
Para el panorama más amplio de evidencia de ejecución, ver Amcache vs ShimCache.
Términos relacionados#
- Amcache.hve — el artefacto de evidencia de presencia.
- ShimCache — la cache del loader del lado del kernel.
- SRUM — el artefacto de uso de recursos de ventana larga.
Artículos relacionados
- ¿Qué es SRUM (SRUDB.dat)? (glosario)
SRUM es el System Resource Usage Monitor de Windows — una base de datos ESE que registra el uso de CPU, red e I/O por aplicación en bloques horarios durante 30-60 días.
- ¿Cuál es la diferencia entre un archivo .pf y una entrada de Amcache?
Los archivos .pf son registros de Windows Prefetch — prueba de que un binario se ejecutó, con marcas de tiempo de ejecución y listas de archivos cargados. Las entradas de Amcache registran presencia, con el hash SHA-1 y metadatos.
- ¿Qué es ShimCache (AppCompatCache)? (glosario)
ShimCache es una cache mantenida por el kernel en el hive del registro SYSTEM que registra hasta 1024 binarios que el loader de Windows ha tocado. Diferente de Amcache.
- ¿Qué es Amcache ProgramId? (glosario)
ProgramId es el hash de identidad de aplicación de 44 caracteres que Amcache asigna a cada aplicación lógica. El mismo ProgramId en hosts diferentes significa la misma instalación de aplicación.