Dónde se encuentra Amcache.hve en disco (y cómo recogerlo)

Si vas a por Amcache, la primera pregunta práctica es "¿dónde está el archivo?". Esta página es la respuesta definitiva para cada versión de Windows con la que probablemente te encuentres, más la forma correcta de recoger el hive para que no pierdas silenciosamente los datos más recientes.

Para el contexto más amplio sobre qué registra Amcache y por qué, ver la referencia completa de Amcache.


La respuesta corta#

En cada build de Windows desktop y server soportado desde Windows 8 en adelante, el hive vive en:

C:\Windows\AppCompat\Programs\Amcache.hve
C:\Windows\AppCompat\Programs\Amcache.hve.LOG1
C:\Windows\AppCompat\Programs\Amcache.hve.LOG2

Quieres los tres archivos, cada vez. Los archivos .LOG1 y .LOG2 son los journals de transacciones del hive — si tomas solo Amcache.hve puedes perder silenciosamente las escrituras más recientes.


La respuesta más larga: por versión de Windows#

Amcache se movió por aquí y por allá en sus primeros días. La historia completa:

Windows 7 / Windows Server 2008 R2#

No hay Amcache.hve. El artefacto equivalente es RecentFileCache.bcf, ubicado en:

C:\Windows\AppCompat\Programs\RecentFileCache.bcf

Es un archivo binario plano (no un hive del registro) con muchos menos metadatos que el Amcache moderno — típicamente solo rutas de archivo y una única marca de tiempo. AmcacheParser no lo parsea; para RecentFileCache.bcf quieres un parser dedicado como RecentFileCacheParser (también de la suite Zimmerman) o un script de Python de la comunidad DFIR.

Si estás leyendo esto en 2026 es improbable que te encuentres con Windows 7 en producción, pero todavía aparece en entornos legacy y en imágenes de triage antiguas.

Windows 8 / 8.1 / Server 2012 / 2012 R2#

El hive Amcache.hve existe en la ruta moderna, pero el schema es el schema legacy con solo las claves Root\Programs y Root\File:

C:\Windows\AppCompat\Programs\Amcache.hve
C:\Windows\AppCompat\Programs\Amcache.hve.LOG1
C:\Windows\AppCompat\Programs\Amcache.hve.LOG2

AmcacheParser maneja el schema legacy y produce un ProgramEntries.csv desde Root\Programs. Hay mucho menos detalle por archivo que en Windows 10+.

Windows 10 / 11 (actual)#

Misma ruta que en Windows 8, pero el hive ahora contiene el schema completo Inventory* (añadido en Windows 10 build 1709, Fall Creators Update). Esto es lo que apunta la mayoría del análisis moderno:

C:\Windows\AppCompat\Programs\Amcache.hve
C:\Windows\AppCompat\Programs\Amcache.hve.LOG1
C:\Windows\AppCompat\Programs\Amcache.hve.LOG2

Windows Server 2016 / 2019 / 2022 / 2025#

Ruta idéntica a Windows 10/11. El schema es el mismo. El appraiser corre con menos frecuencia en servidores que en desktops (a menudo varios días entre pasadas en lugar de diariamente), por lo que la marca de "última escritura" del hive tiende a ser más antigua en un servidor que en una estación de trabajo del mismo entorno. Ver Amcache en Windows Server para las peculiaridades específicas de servidor.


En una imagen forense de disco#

Cuando trabajas con una imagen adquirida en lugar de un sistema en vivo, el archivo vive en la misma ruta dentro de la partición C: de la imagen:

<image>\Windows\AppCompat\Programs\Amcache.hve
<image>\Windows\AppCompat\Programs\Amcache.hve.LOG1
<image>\Windows\AppCompat\Programs\Amcache.hve.LOG2

Si has montado la imagen en solo lectura (vía Arsenal Image Mounter, FTK Imager o losetup + mount -o ro en Linux), la ruta es literalmente la ruta del sistema de archivos bajo el punto de montaje. AmcacheParser toma una ruta de archivo normal y lee el hive sin locks — no se necesita manejo especial.

Volume Shadow Copies#

En una estación de trabajo que lleva meses ejecutándose, puedes encontrar múltiples copias de Amcache.hve dentro de Volume Shadow Copies. Cada shadow copy es un snapshot punto-en-el-tiempo del volumen, y cada uno contiene su propio snapshot de Amcache.hve y sus logs.

Para una investigación en la que sospechas manipulación anti-forense del hive en vivo, comprueba siempre las shadow copies. Se montan en rutas como:

\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\AppCompat\Programs\Amcache.hve
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\Windows\AppCompat\Programs\Amcache.hve
...

Puedes enumerarlas con vssadmin list shadows en un sistema en vivo o con vshadowmount de libvshadow en una imagen forense. Cada copia es un objetivo de parsing separado — pásalas todas a AmcacheParser y haz un diff de la salida si sospechas que el hive en vivo fue modificado.


En un sistema en vivo#

Si absolutamente debes leer el hive en un host Windows en vivo, corriendo (por ejemplo, durante un triage sin tiempo para una imagen completa):

No parsees C:\Windows\AppCompat\Programs\Amcache.hve en su sitio. El hive está abierto por el sistema; leerlo directamente es poco fiable y mala práctica forense.

copia el hive + ambos logs a un directorio de trabajo primero. El patrón estándar de PowerShell:

$target = 'C:\Triage\Amcache'
New-Item -ItemType Directory -Path $target -Force | Out-Null
 
# Necesita 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
 
# Hashea todo 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 Amcache.hve porque está abierto por el appraiser, el fallback es usar un lector de volumen raw:

  • RawCopy.exe (de la suite Joakim Schicht) lee el archivo saltándose los locks del sistema de archivos.
  • Get-RawFile en PowerShell hace lo mismo vía CreateFile con FILE_FLAG_BACKUP_SEMANTICS.
  • KAPE usa la misma técnica internamente — ver la siguiente sección.

Recolección con KAPE#

El target Amcache de KAPE es la forma correcta más fácil de recoger el hive en un sistema en vivo o en imagen:

.\kape.exe `
  --tsource C: `
  --target Amcache `
  --tdest .\out\HOST01\collected

Qué hace KAPE:

  1. Salta los locks del sistema de archivos usando su lector de volumen raw.
  2. Copia Amcache.hve + Amcache.hve.LOG1 + Amcache.hve.LOG2 en out\HOST01\collected\C\Windows\AppCompat\Programs\.
  3. Preserva las marcas de tiempo originales y escribe un log de lo que se recogió.

Empareja el target Amcache con el módulo AmcacheParser para un pipeline de una línea de recoger-y-parsear. Ver el cheatsheet CLI de AmcacheParser para patrones de KAPE.


Recolección con Velociraptor#

Para recolección de flota, el artefacto Windows.Forensics.Amcache de Velociraptor lo maneja remotamente:

artifacts:
  - Windows.Forensics.Amcache
  parameters:
    - name: AmcacheGlob
      value: 'C:\Windows\AppCompat\Programs\Amcache.hve*'

El * final en el glob es intencional — coincide con el hive y ambos journals de transacciones en una pasada. El artefacto descarga AmcacheParser si es necesario, lo ejecuta en el lado del servidor y sube la salida CSV. Empareja con un hunt para correr a través de miles de endpoints en una programación.


Errores comunes de recolección#

Una breve lista de errores que aparecen una y otra vez en trabajo de incidentes, en orden aproximado de frecuencia:

  1. Copiar solo Amcache.hve sin los archivos .LOG1 / .LOG2. Pierde silenciosamente las escrituras más recientes. Copia siempre los tres.
  2. Leer el hive en vivo en su sitio. A veces funciona, a veces produce un error de parsing, a veces produce un parseo plausible pero incorrecto. Copia siempre primero.
  3. Olvidar las Volume Shadow Copies en una investigación de manipulación. El hive en vivo puede haber sido borrado; las shadow copies preservan la historia.
  4. Hashear el hive después de parsear. Hashea antes de parsear también, para poder probar que el parseo no lo modificó.
  5. No preservar las marcas de tiempo en las copias recogidas. Usa Copy-Item -Force (que preserva) o robocopy con /COPY:DAT. El LastWriteTime original del archivo del hive es en sí mismo evidencia útil.

Ver también#

¿Quieres mirar un hive que acabas de recoger sin instalar nada? Suéltalo en la página de inicio del parser — nunca sale de tu navegador.

Artículos relacionados

Volver a todos los artículos