El ShimCache de Windows — también llamado Application Compatibility Cache (AppCompatCache) — es uno de los artefactos más citados en la respuesta a incidentes en Windows. También es uno de los peor entendidos. Esta breve introducción explica qué registra realmente, dónde se almacena y cómo los investigadores deben (y no deben) interpretarlo.
Qué registra el ShimCache
Cuando Windows examina un ejecutable para decidir si necesita aplicarle un shim de compatibilidad, registra ese examen en el ShimCache. Se conservan hasta 1.024 entradas por sistema, cada una con al menos:
- la ruta completa del ejecutable,
- la marca de tiempo
$STANDARD_INFORMATIONde última modificación del archivo, - y, en versiones antiguas de Windows, banderas que indican si el archivo fue ejecutado.
El caché reside en memoria volátil mientras el sistema está activo y solo se vuelca al registro al apagar. Ese detalle de temporización importa: un reinicio forzado o una VM apagada bruscamente puede perder por completo las entradas recientes.
Dónde se almacena
El ShimCache reside en la colmena SYSTEM en:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache
El valor es un único blob binario cuya estructura varía según la versión de Windows — XP, 7, 8, 8.1, 10 y 11 usan cada uno un diseño ligeramente distinto. Analizarlo sin conexión significa extraer el valor y decodificarlo según el esquema correcto. Eso es exactamente lo que hace esta herramienta, completamente en tu navegador, sin subir nada.
Valor forense
El ShimCache se usa sobre todo para demostrar la existencia de un programa: un binario concreto estuvo, en algún momento, presente en el disco de un host concreto. Esto sirve para:
- atribuir la presencia de malware incluso tras eliminarse el archivo,
- enriquecer líneas de tiempo de ejecución construidas con Prefetch o AmCache,
- corroborar hallazgos de EDR o telemetría de Sysmon.
Tres advertencias que muerden
- La marca de tiempo es el mtime del archivo, no el momento de ejecución. Un binario copiado sin preservar los timestamps mostrará su mtime original.
- Una entrada no es prueba de ejecución. En Windows 10 y 11 se eliminó por completo la bandera de ejecución del caché. Combina el ShimCache con Prefetch, AmCache y registros de eventos antes de afirmar que un programa se ejecutó.
- El caché se llena, expulsa entradas antiguas y se vacía al apagar. Las entradas recientes que nunca llegaron al disco simplemente se pierden.
Usado con cuidado y corroborado con otros artefactos, el ShimCache es un punto pivote de alta señal. Trata cada entrada como una hipótesis que confirmar, no como una conclusión.
Por dónde seguir
Para profundizar, el resto del blog se organiza en dos grupos temáticos.
Entender el ShimCache
- ShimCache vs AmCache: qué artefacto de Windows responde a qué pregunta
- ¿Demuestra el ShimCache que un programa se ejecutó?
- ¿Dónde se almacena el ShimCache y cuándo se escribe?
- Prefetch, AmCache, ShimCache: referencia rápida de artefactos de ejecución de programas
- Analizando el ShimCache: el formato binario de Windows 10 y 11
Usarlo en investigaciones
- Cómo adquirir una colmena SYSTEM de Windows para el análisis offline del ShimCache
- Caza de malware con el ShimCache: un flujo de trabajo 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 temporal de ejecución de programas a partir de una colmena SYSTEM
- Comparativa de parsers de ShimCache: Mandiant, Zimmerman, Velociraptor y esta herramienta