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 \
--mpMê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-dessusVoir 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.