¿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 \
--mpMismos 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 arribaVer 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.