ShimCache vs AmCache: qué artefacto de Windows responde a qué pregunta

3 min de lectura

TL;DR. ShimCache prueba que un archivo existió en disco; AmCache prueba que se ejecutó y lo identifica por SHA-1. ShimCache solo vuelca al apagado limpio — AmCache escribe de forma continua. Saca ambos; son co-testigos, no sustitutos.

ShimCache y AmCache son los dos artefactos basados en el registro más citados en las investigaciones de ejecución de programas en Windows. Suenan intercambiables. No lo son. Esta es una referencia rápida para decidir cuál usar según la pregunta que intentas responder.

Árbol de decisión ShimCache vs AmCache

Vistazo general

ShimCacheAmCache
UbicaciónHKLM\SYSTEM\…\AppCompatCacheC:\Windows\AppCompat\Programs\Amcache.hve
CapacidadHasta 1.024 entradasMiles de entradas, sin tope fijo
Datos por entradaRuta, mtime, (legado) flag de ejecuciónRuta, SHA-1, tamaño, editor, fecha de instalación, mucho más
Se escribe cuandoSolo al apagarContinuamente (y en intervalos programados)
Sobrevive a un crashNo — se pierden las entradas recientesSí — ya está en disco
Ideal paraProbar que un archivo existió en discoProbar que un archivo se ejecutó + identificarlo por hash

Cuándo gana el ShimCache

El ShimCache mantiene una entrada para todo ejecutable que Windows simplemente examinó por razones de compatibilidad. Eso lo hace sensible: un binario que un atacante dejó caer y borró de inmediato puede dejar todavía un rastro en el ShimCache. Si tu pregunta es «¿existió alguna vez este archivo en este host?» — el ShimCache es tu aliado.

También es el único de los dos que captura el mtime $STANDARD_INFORMATION del archivo. Esa marca temporal no es el momento de ejecución (una confusión habitual que tratamos en otro artículo), pero ancla la identidad del archivo en el tiempo.

Cuándo gana AmCache

AmCache es lo que quieres cuando la pregunta es «¿se ejecutó realmente este archivo, y qué archivo exactamente?». Cada entrada AmCache lleva un hash SHA-1, el tamaño del archivo, el editor, la fecha de instalación — suficiente para identificar un binario sin ambigüedad, incluso si el archivo en disco ha sido reemplazado o borrado.

AmCache también persiste. Como Windows lo escribe continuamente en lugar de solo al apagar, la actividad reciente en un sistema que ha caído o se ha reiniciado de forma forzada tiene más posibilidades de aparecer en AmCache que en el ShimCache.

Cómo usarlos juntos

En la práctica, trátalos como co-testigos:

  • Una entrada en ambos, ShimCache y AmCache, con rutas coincidentes y una marca AmCache reciente, es prueba sólida de ejecución.
  • Una entrada solo en el ShimCache dice que el archivo estuvo al menos en disco en algún momento. Busca evidencia corroborante (Prefetch, AmCache, registros de eventos) antes de afirmar ejecución.
  • Una entrada solo en AmCache sin Prefetch y sin ShimCache normalmente significa que el host no se ha apagado limpiamente desde la actividad — el ShimCache nunca llegó a escribirse en disco.

Para los detalles técnicos del diseño binario del ShimCache, consulta Analizando el ShimCache: el formato binario de Windows 10 y 11. Para analizar una colmena ahora mismo sin instalar nada, usa el Shimcache Parser — todo se ejecuta en tu navegador.

Lectura adicional

Artículos relacionados