La mayoría de los analistas se topan con el ShimCache del mismo modo: alguien del equipo dice "saca el AppCompatCache, mira si el binario está ahí", y funciona lo bastante a menudo como para que el artefacto se gane una reputación que no merece del todo. He pasado suficientes horas discutiendo filas del ShimCache en revisiones de casos para saber que el artefacto vale lo que pesa, pero solo si lo tratas como lo que realmente es. No es un registro de ejecución. No es una auditoría de procesos. Es una lista de ejecutables que Windows examinó con suficiente atención como para decidir si debía aplicarse un shim de compatibilidad.
Ese es el encuadre. El resto es mecánica.
Qué registra realmente el cache
El Application Compatibility Cache, casi siempre abreviado como ShimCache o AppCompatCache, vive en el hive SYSTEM y mantiene hasta unas 1.024 entradas en Windows moderno. Cada entrada lleva la ruta completa del archivo ejecutable, la hora de última modificación $STANDARD_INFORMATION del archivo y (en versiones más antiguas) un flag que indica si el binario se ejecutó realmente. Ese flag desapareció en Windows 10 y 11. Haz como si nunca hubiera existido.
Windows construye el cache en memoria en cada arranque y solo lo escribe en disco al apagar limpiamente. Un BSOD, un reinicio forzado o un kill de VM a nivel de hipervisor se come todo lo que estuviera en memoria volátil. Ese único hecho explica la mitad de las historias del tipo "pero vi el binario en producción" que acaban en tickets del tipo "el hive en disco no muestra nada".
Dónde reside
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache
Ese AppCompatCache final es un valor, no una subclave. Su contenido es un único blob binario cuyo diseño cambió en cada versión mayor de Windows: XP, 7, 8, 8.1 y la familia 10/11 usan todos esquemas diferentes. Parsearlo sin conexión implica extraer el hive SYSTEM (más sus registros de transacciones SYSTEM.LOG1 y SYSTEM.LOG2) y decodificar el blob contra la versión correcta. Esta herramienta parsea ese único archivo del hive SYSTEM en tu navegador, sin subida. No reproduce los logs: si el hive está sucio, reprodúcelos antes con rla.exe de Eric Zimmerman.
Por qué los investigadores recurren a él
El ShimCache se gana el pan porque sobrevive. Un atacante puede soltar un binario, ejecutarlo, borrarlo, vaciar la carpeta Prefetch, y el ShimCache sigue conservando la ruta completa. Eso lo convierte en un testigo de existencia sólido para:
- Malware que ya ha sido borrado del disco.
- Binarios del sistema renombrados utilizados como payloads living-off-the-land.
- Herramientas montadas desde un recurso compartido de red que nadie llegó a copiar localmente.
Combina los datos de la ruta con AmCache para atribución por hash y puedes pivotar a inteligencia de amenazas incluso cuando el archivo ya no está.
Tres cosas que pillan a la gente
- La marca de tiempo es la mtime del archivo, no cuándo se ejecutó el programa. El timestomping cambia lo que el cache registra.
- Una entrada no es prueba de ejecución. El cache de Win10/11 no tiene ningún flag de ejecución.
- El cache solo se vuelca en un apagado limpio. Los reinicios forzados destruyen entradas recientes sin avisar.
Trata cada fila como una hipótesis. Corrobora con Prefetch, AmCache, EVTX / Sysmon o hives del registro antes de escribir algo definitivo en un informe.
Por dónde seguir
El resto del blog está organizado en dos bloques.
Entender el ShimCache
- ShimCache vs AmCache: qué artefacto de Windows responde a cada pregunta
- ¿Prueba el ShimCache que un programa se ejecutó?
- ¿Dónde se almacena el ShimCache, y cuándo se escribe?
- Prefetch, AmCache, ShimCache: una referencia rápida para evidencia de ejecución
- Parsear el ShimCache: el formato binario de Windows 10 y 11
Usarlo en investigaciones
- Cómo adquirir un hive SYSTEM de Windows para análisis offline del ShimCache
- Cazar malware con el ShimCache: un workflow paso a paso
- Usar el ShimCache en investigaciones de ransomware
- Extraer el ShimCache de un volcado de memoria
- ¿Pueden los atacantes borrar el ShimCache? Anti-forense y detección
- Construir una línea de tiempo de ejecución de programas desde un hive SYSTEM
- Comparativa de parsers de ShimCache: Mandiant, Zimmerman, Velociraptor y esta herramienta