Comment lire Amcache.hve sous Linux ou macOS ?

Vous n'avez pas besoin de Windows pour lire Amcache. Trois bonnes options, dans l'ordre « DFIR de production » à « triage rapide » :

Option 1 — dotnet AmcacheParser.dll (recommandée pour les analystes)#

Eric Zimmerman publie un build .NET framework-dépendant d'AmcacheParser qui fonctionne partout où .NET fonctionne. Même outil, mêmes flags, même sortie que sous Windows.

# Installer le runtime .NET
# Debian/Ubuntu
sudo apt install dotnet-runtime-6.0
 
# RHEL/Fedora
sudo dnf install dotnet-runtime-6.0
 
# macOS
brew install dotnet
 
# Puis exécuter 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

Mêmes CSV par catégorie que vous obtiendriez sous Windows. C'est le bon choix pour les investigations complètes sur un poste d'analyste non-Windows.

Option 2 — basé sur navigateur (sans installation)#

Déposez Amcache.hve sur la page d'accueil de ce site et le parser s'exécute entièrement dans votre navigateur. Le fichier ne quitte jamais votre navigateur — le parsing est côté client en Rust compilé vers WebAssembly. Fonctionne sur :

  • Tout OS desktop / laptop avec un navigateur moderne (Chrome, Firefox, Safari, Edge).
  • ChromeOS, BSD, tout ce qui a un navigateur.
  • Appareils mobiles (Android, iOS) — bien que l'UI soit pensée pour desktop.

Le meilleur pour le triage, l'éducation et les recherches rapides quand vous ne voulez rien installer. Pour les investigations complètes, utilisez l'Option 1.

Option 3 — libhivex / Python#

Pour un accès programmatique, libhivex (la bibliothèque Linux de ruches de registre) a des bindings Python :

import hivex
h = hivex.Hivex('/cases/inc-042/HOST01/Amcache.hve')
root = h.root()
# Parcourir 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)

Vous devrez décoder les valeurs FILETIME Windows, parser le format "0000" + SHA-1 FileId, et parcourir l'arbre vous-même. Il n'y a pas de parser Amcache Python prêt à l'emploi avec le même schéma CSV qu'AmcacheParser — mais si vous avez besoin d'accès programmatique / scripté, hivex est la bonne primitive.

Qu'en est-il de Volatility ?#

Si vous n'avez qu'une image mémoire Windows (pas de disque), utilisez Volatility pour dumper la copie en mémoire d'Amcache, puis alimentez le fichier dumpé à l'une des options ci-dessus.

# Volatility 3 — trouver la ruche dans la liste des ruches
vol -f memory.dmp windows.registry.hivelist | grep -i amcache
 
# La dumper
vol -f memory.dmp windows.registry.dumphive --offset 0xfffff8a0... > Amcache.hve
 
# Puis parser avec AmcacheParser comme ci-dessus

Voir Volatility et Amcache pour le workflow d'extraction mémoire complet.

Décision rapide#

Vous voulez... Utilisez
Investigation complète, CSV structuré Option 1 (dotnet AmcacheParser.dll)
Triage rapide / coup d'œil ponctuel Option 2 (navigateur)
Script personnalisé / intégration pipeline Option 3 (libhivex / Python)
Parser depuis un dump mémoire Volatility → Option 1

Pour le contexte d'artefact plus large, voir la référence complète Amcache.

Articles liés

  • Pourquoi mon Amcache.hve est-il vide ?

    Trois causes courantes : le Compatibility Appraiser est désactivé, l'hôte vient d'être fraîchement imagé, ou vous collectez depuis un Server / Server Core où l'appraiser s'exécute beaucoup moins souvent.

  • Où se trouve la clé de registre Amcache ?

    Amcache est sa propre ruche située à C:\Windows\AppCompat\Programs\Amcache.hve — pas une clé sous HKLM. Quand elle est chargée par des outils ou par Windows lui-même, elle est montée comme HKLM\Amcache.

  • Que contient Amcache.hve ?

    Amcache.hve contient des enregistrements d'inventaire pour chaque binaire PE, pilote et périphérique connecté que le Compatibility Appraiser Windows a vu — avec hashes SHA-1, chemins, éditeurs et horodatages.

  • Qu'est-ce qu'un fichier .pf vs une entrée Amcache ?

    Les fichiers .pf sont des enregistrements Windows Prefetch — preuve qu'un binaire s'est exécuté, avec horodatages d'exécution et listes de fichiers chargés. Les entrées Amcache enregistrent la présence, avec le hash SHA-1 et les métadonnées.

Retour à tous les articles