¿Cómo leo Amcache.hve en Linux o macOS?

No necesitas Windows para leer Amcache. Tres buenas opciones, en orden de "DFIR de producción" a "triage rápido":

Opción 1 — dotnet AmcacheParser.dll (recomendada para analistas)#

Eric Zimmerman publica un build de AmcacheParser dependiente de framework en .NET que corre en cualquier sitio donde .NET corra. Misma herramienta, mismos flags, misma salida que Windows.

# Instalar el runtime de .NET
# Debian/Ubuntu
sudo apt install dotnet-runtime-6.0
 
# RHEL/Fedora
sudo dnf install dotnet-runtime-6.0
 
# macOS
brew install dotnet
 
# Luego corre AmcacheParser
dotnet /opt/ztools/net6/AmcacheParser/AmcacheParser.dll \
  -f   /cases/inc-042/HOST01/Amcache.hve \
  --csv /cases/inc-042/HOST01/out \
  --csvf HOST01_amcache.csv \
  --mp

Mismos CSVs por categoría que obtendrías en Windows. Esta es la elección correcta para investigaciones completas en un host de analista no-Windows.

Opción 2 — basado en navegador (sin instalación)#

Suelta Amcache.hve en la página de inicio de este sitio y el parser corre enteramente en tu navegador. El archivo nunca abandona tu navegador — el parseo es Rust del lado cliente compilado a WebAssembly. Funciona en:

  • Cualquier OS de escritorio / laptop con un navegador moderno (Chrome, Firefox, Safari, Edge).
  • ChromeOS, BSD, cualquier cosa con un navegador.
  • Dispositivos móviles (Android, iOS) — aunque la UI es desktop-first.

Mejor para triage, educación y búsquedas rápidas cuando no quieres instalar nada. Para investigaciones completas, usa la Opción 1.

Opción 3 — libhivex / Python#

Para acceso programático, libhivex (la librería Linux de hives del registro) tiene bindings de Python:

import hivex
h = hivex.Hivex('/cases/inc-042/HOST01/Amcache.hve')
root = h.root()
# Recorre Root\InventoryApplicationFile
inv = h.node_get_child(root, 'Root')
inv_files = h.node_get_child(inv, 'InventoryApplicationFile')
for child in h.node_children(inv_files):
    name = h.node_name(child)
    values = {h.value_key(v): h.value_value(v) for v in h.node_values(child)}
    print(name, values)

Tendrás que decodificar los valores FILETIME de Windows, parsear el formato "0000" + SHA-1 de FileId y recorrer el árbol tú mismo. No hay un parser de Amcache Python listo para usar con el mismo schema CSV que AmcacheParser — pero si necesitas acceso programático / scripteado, hivex es la primitiva correcta.

¿Y qué hay de Volatility?#

Si solo tienes una imagen de memoria de Windows (sin disco), usa Volatility para volcar la copia en memoria de Amcache, luego alimenta el archivo volcado a una de las opciones anteriores.

# Volatility 3 — encuentra el hive en la lista de hives
vol -f memory.dmp windows.registry.hivelist | grep -i amcache
 
# Vuélcalo
vol -f memory.dmp windows.registry.dumphive --offset 0xfffff8a0... > Amcache.hve
 
# Luego parsea con AmcacheParser como arriba

Ver Volatility y Amcache para el flujo de trabajo completo de extracción de memoria.

Decisión rápida#

Quieres... Usa
Investigación completa, CSV estructurado Opción 1 (dotnet AmcacheParser.dll)
Triage rápido / vistazo puntual Opción 2 (navegador)
Script personalizado / integración en pipeline Opción 3 (libhivex / Python)
Parsear desde un dump de memoria Volatility → Opción 1

Para el contexto más amplio del artefacto, ver la referencia completa de Amcache.

Artículos relacionados

  • ¿Por qué mi Amcache.hve está vacío?

    Tres causas comunes: el Compatibility Appraiser está desactivado, el host está recién imageado, o estás recolectando de un Server / Server Core donde el appraiser corre mucho menos a menudo.

  • ¿Dónde está la clave del registro de Amcache?

    Amcache es su propio archivo de hive en C:\Windows\AppCompat\Programs\Amcache.hve — no una clave bajo HKLM. Cuando es cargado por herramientas o por el propio Windows se monta como HKLM\Amcache.

  • ¿Qué contiene Amcache.hve?

    Amcache.hve contiene registros de inventario para cada binario PE, driver y dispositivo conectado que el Compatibility Appraiser de Windows ha visto — con hashes SHA-1, rutas, publishers y marcas de tiempo.

  • ¿Cuál es la diferencia entre un archivo .pf y una entrada de Amcache?

    Los archivos .pf son registros de Windows Prefetch — prueba de que un binario se ejecutó, con marcas de tiempo de ejecución y listas de archivos cargados. Las entradas de Amcache registran presencia, con el hash SHA-1 y metadatos.

Volver a todos los artículos