Dónde está Amcache.hve en disco (y cómo recogerlo)
La primera pregunta práctica en cualquier caso de Amcache es dónde está el archivo. Esta página es la respuesta definitiva para cualquier versión de Windows que probablemente veas, más la forma correcta de recoger la hive para no perder silenciosamente los datos más recientes.
Para el contexto más amplio, ve la Referencia completa de Amcache.
La respuesta corta#
En todo Windows desktop y server soportado desde Windows 8 en adelante:
C:\Windows\AppCompat\Programs\Amcache.hve
C:\Windows\AppCompat\Programs\Amcache.hve.LOG1
C:\Windows\AppCompat\Programs\Amcache.hve.LOG2
Los tres. Cada vez. .LOG1 y .LOG2 son los logs de transacción de la hive del Registro. Coge solo la hive principal y silenciosamente pierdes las escrituras más recientes.
Por versión de Windows#
El artefacto se ha movido en sus primeros días. Historia completa:
Windows 7 / Server 2008 R2#
No hay Amcache.hve. El predecesor es RecentFileCache.bcf:
C:\Windows\AppCompat\Programs\RecentFileCache.bcf
Binario plano (no una hive) con muchos menos metadatos. AmcacheParser no lo maneja. Usa RecentFileCacheParser o uno de los scripts de Python de la comunidad. Si lees esto en 2026 es poco probable que veas Windows 7 en producción, pero aparece en entornos legacy y en imágenes de triage antiguas.
Windows 8 / 8.1 / Server 2012 / 2012 R2#
Amcache.hve existe en la ruta moderna pero el esquema es legacy, solo con claves Root\Programs y Root\File. AmcacheParser produce *_ProgramEntries.csv pero el detalle por archivo es escaso.
Windows 10 / 11 (actual)#
Misma ruta que Windows 8, pero la hive trae el esquema completo Inventory* (añadido en Windows 10 build 1709, octubre de 2017). Esto es lo que apunta la mayoría del análisis moderno.
Windows Server 2016 / 2019 / 2022 / 2025#
Ruta idéntica. Esquema idéntico. El appraiser corre con menos frecuencia que en desktops (cada varios días en lugar de diariamente), así que la escritura más reciente de la hive tiende a ser más antigua. Ve Amcache en Windows Server para las particularidades específicas de servidor.
Desde una imagen de disco forense#
Cuando trabajas con una imagen en lugar de un sistema vivo, el archivo vive en la misma ruta dentro de la partición C::
<imagen>\Windows\AppCompat\Programs\Amcache.hve
<imagen>\Windows\AppCompat\Programs\Amcache.hve.LOG1
<imagen>\Windows\AppCompat\Programs\Amcache.hve.LOG2
Monta en solo lectura (Arsenal Image Mounter, FTK Imager, losetup + mount -o ro en Linux) y la ruta es literalmente la del sistema de archivos bajo el punto de montaje. AmcacheParser toma una ruta de archivo normal y lee sin locks. No hace falta nada especial.
Volume Shadow Copies#
En una workstation que lleva meses corriendo, normalmente encuentras múltiples copias de Amcache.hve dentro de los Volume Shadow Copies. Cada shadow es un snapshot del volumen en un momento dado, y cada uno contiene su propio snapshot de Amcache.hve y sus logs.
Para investigaciones donde sospechas manipulación anti-forense de la hive viva, revisa siempre los shadows. Se montan en rutas como:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\AppCompat\Programs\Amcache.hve
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\Windows\AppCompat\Programs\Amcache.hve
Enumera con vssadmin list shadows en un sistema vivo o vshadowmount de libvshadow en una imagen forense. Cada uno es un target de parseo aparte. Haz diff de sus salidas si sospechas que la hive viva fue modificada.
En un sistema vivo#
Si absolutamente tienes que leer la hive en un host vivo (un triage sin tiempo para una imagen completa):
No parsees C:\Windows\AppCompat\Programs\Amcache.hve en su sitio. La hive la tiene abierta el appraiser. Leerla directamente es poco fiable y mala práctica forense.
Sí copia primero la hive + ambos logs a un directorio de trabajo. Patrón estándar de PowerShell:
$target = 'C:\Triage\Amcache'
New-Item -ItemType Directory -Path $target -Force | Out-Null
# PowerShell elevado. Copia hive + logs juntos.
Copy-Item 'C:\Windows\AppCompat\Programs\Amcache.hve' $target -Force
Copy-Item 'C:\Windows\AppCompat\Programs\Amcache.hve.LOG1' $target -Force
Copy-Item 'C:\Windows\AppCompat\Programs\Amcache.hve.LOG2' $target -Force
# Hash para cadena de custodia
Get-ChildItem $target -Filter Amcache.hve* |
ForEach-Object { Get-FileHash -Algorithm SHA256 $_.FullName }Si el sistema de archivos se niega a copiar porque el appraiser tiene el archivo abierto, recurre a un lector raw de volumen:
RawCopy.exe(suite de Joakim Schicht). Lee el archivo saltándose los locks de filesystem.Get-RawFileen PowerShell. Misma idea víaCreateFileconFILE_FLAG_BACKUP_SEMANTICS.- KAPE usa la misma técnica por dentro. Ve más abajo.
Recolección con KAPE#
El target Amcache de KAPE es la forma correcta más fácil:
.\kape.exe `
--tsource C: `
--target Amcache `
--tdest .\out\HOST01\collectedLo que hace KAPE:
- Esquiva los locks de filesystem con su lector raw de volumen.
- Copia
Amcache.hve+.LOG1+.LOG2enout\HOST01\collected\C\Windows\AppCompat\Programs\. - Preserva timestamps originales y escribe un log de lo recogido.
Combina el target Amcache con el módulo AmcacheParser para una pipeline de una línea recoger-y-parsear. Ve el cheatsheet de CLI de AmcacheParser para los patrones KAPE.
Recolección con Velociraptor#
Para recolección a nivel de flota, Windows.Forensics.Amcache de Velociraptor lo hace de forma remota:
artifacts:
- Windows.Forensics.Amcache
parameters:
- name: AmcacheGlob
value: 'C:\Windows\AppCompat\Programs\Amcache.hve*'El * final es intencionado. Casa la hive y los dos logs de transacción en una sola pasada. El artefacto descarga AmcacheParser si hace falta, lo corre en el lado servidor y sube la salida CSV. Combínalo con una hunt programada sobre miles de endpoints.
Errores comunes de recolección#
Aproximadamente por orden de cuán a menudo aparecen en casos reales:
- Copiar solo
Amcache.hvesin.LOG1/.LOG2. Pierde silenciosamente las escrituras más recientes. Siempre los tres. - Leer la hive viva en su sitio. A veces funciona, a veces da error, a veces produce un parse que pinta bien pero está mal. Copia primero siempre.
- Olvidar los Volume Shadow Copies en casos de manipulación. La hive viva puede haber sido borrada. Los shadows preservan la historia.
- Hashear solo después de parsear. Hashea antes también, para poder demostrar que el parse no modificó el archivo.
- No preservar timestamps en las copias recogidas. Usa
Copy-Item -Force(los preserva) o robocopy con/COPY:DAT. ElLastWriteTimeoriginal de la hive es por sí mismo evidencia útil.
Lecturas adicionales#
- Documentación de KAPE, particularmente los targets compuestos
!Acquisitiony!SANS_Triage. - Documentación de Velociraptor para
Windows.Forensics.Amcache. - libvshadow / vshadowmount en Linux para acceso de solo lectura a snapshots VSS desde una imagen forense.
Relacionados#
Artículos relacionados
- Recuperar evidencia de binarios borrados desde Amcache
Amcache sobrevive a los binarios que registra. La ruta, el SHA-1, el publisher, el link date y el momento del inventario persisten meses después de que el atacante limpie el archivo. El flujo práctico.
- Amcache: la referencia forense completa de la hive Windows .hve
Amcache es la hive donde el Compatibility Appraiser anota cada PE en disco, con SHA-1, ruta completa, publisher, link date y un tiempo de escritura de clave. La referencia, del formato al uso investigativo.
- FileId de Amcache explicado: el formato de hash SHA-1 que almacena Windows
FileId es '0000' más el SHA-1 de los primeros 31 MiB. Quita el prefijo o tus lookups a VirusTotal devuelven silenciosamente nada. La referencia completa, con sus trampas.
- Volatility y Amcache: extraer el hive de imágenes de memoria
Una guía práctica para recuperar Amcache de una imagen de memoria de Windows usando Volatility — cuándo la recuperación del lado de memoria es la única opción, qué plugins usar y cómo entregar a AmcacheParser.