AmcacheParser : le guide complet de l'outil d'Eric Zimmerman
AmcacheParser est l'outil open source de référence pour analyser la
ruche du registre Windows Amcache.hve. Il a été écrit par Eric
Zimmerman, praticien chevronné de l'investigation numérique dont la
suite d'outils (MFTECmd, RECmd, PECmd, EvtxECmd, …) constitue
l'ossature des workflows forensiques Windows modernes. Si vous avez
déjà trié un poste Windows, vous avez très probablement utilisé
AmcacheParser — directement ou via un wrapper comme
KAPE.
Ce guide est la référence canonique sur l'outil : ce qu'il analyse, comment l'installer, comment lire sa sortie, sa place dans un workflow DFIR, et quand vous pourriez préférer exécuter la même logique de parsing dans un navigateur sans rien installer (ce que fait ce site).
Crédit là où il est dû. AmcacheParser est l'œuvre d'Eric Zimmerman. L'analyseur dans le navigateur hébergé sur amcacheparser.com est un projet indépendant qui réimplémente le chemin de lecture en Rust + WebAssembly pour le triage et la formation. Il n'est ni affilié à Eric, ni à son employeur.
Qu'est-ce qu'AmcacheParser ?#
AmcacheParser est un programme en ligne de commande (AmcacheParser.exe)
qui :
- Ouvre une ruche
Amcache.hvedu registre Windows (ou une copie accompagnée de ses journaux de transactions). - Parcourt les sous-clés pertinentes :
Root\InventoryApplicationFile,Root\InventoryApplication,Root\InventoryDriverBinary,Root\InventoryDeviceContainer,Root\Programs,Root\File, et les autres clésInventory*. - Décode les valeurs (FILETIMEs Windows, identifiants SHA-1, chaînes de version, GUIDs, ...) en champs lisibles.
- Écrit un CSV par catégorie, plus une timeline combinée.
C'est délibérément un analyseur en lecture seule et à usage unique : il n'interprète pas, ne note pas, ne déclenche pas d'alerte. Sa sortie est destinée à alimenter votre carnet d'analyste, votre SIEM, Timeline Explorer ou un autre outil de la suite Zimmerman.
Pourquoi les analystes s'intéressent à Amcache#
Amcache.hve est l'un des artefacts les plus riches sur un poste
Windows pour la présence et l'exécution de programmes. Contrairement
à Prefetch (qui prouve qu'un binaire s'est bien exécuté), Amcache
enregistre souvent des binaires simplement présents sur le disque
— y compris ceux supprimés avant votre arrivée. Pour chaque fichier
suivi, vous obtenez généralement :
- Le chemin complet au moment de l'inventaire.
- Une empreinte SHA-1 des ~31 Mio premiers du fichier (le
FileId). - La date de link PE et la taille du fichier.
- L'éditeur, la version et le nom de produit issus de la section ressources PE.
- Un horodatage de l'inscription en inventaire.
Cette combinaison — chemin + hash + date de link + heure d'inventaire — est de l'or pour la réponse à incident. Elle permet de pivoter en quelques secondes de « un binaire suspect a tourné sur un poste voisin » à « ce binaire exact a-t-il déjà existé sur cet hôte, même brièvement ? ».
Qui est Eric Zimmerman ?#
Eric Zimmerman est un ancien agent spécial du FBI, aujourd'hui Senior
Director chez Kroll, où il dirige l'outillage de la pratique réponse à
incident. Il publie des outils DFIR open source sur
ericzimmerman.github.io depuis plus
d'une décennie. AmcacheParser est dans la famille Get-ZimmermanTools
aux côtés de :
MFTECmd— analyseur$MFT,$LogFile,$J,$Boot,$SDSRECmd— ligne de commande et processeur batch pour les ruchesRBCmd— analyseur de CorbeillePECmd— analyseur PrefetchEvtxECmd— analyseur de journaux d'événements WindowsJLECmd— analyseur Jump ListLECmd— analyseur LNKSBECmd— CLI de Shellbag Explorer
Si vous ne devez apprendre qu'une seule suite DFIR, celle de Zimmerman est celle que la plupart des employeurs attendront de vous.
Comment AmcacheParser fonctionne en interne#
Amcache.hve est un fichier de ruche du registre Windows standard — le
même format binaire que SYSTEM, SOFTWARE, SAM ou NTUSER.DAT.
AmcacheParser ouvre le fichier, parcourt les bins et cellules de la
ruche, suit l'arborescence clés/valeurs et décode les valeurs typées.
Les champs les plus utiles aux analystes sont encodés de trois façons
légèrement pénibles :
- FILETIMEs Windows — valeurs 64 bits comptant les ticks de 100 ns depuis le 1601-01-01 UTC. AmcacheParser les convertit en ISO-8601 UTC.
- Dates de link PE — valeurs
time_t32 bits issues deIMAGE_FILE_HEADER.TimeDateStamp. Ce ne sont pas des dates système de fichiers ; elles sont fixées à la compilation/édition de liens et servent de pivot utile. FileIdSHA-1 — chaîne de 41 caractères"0000" + sha1_hex. Le0000initial est une étiquette de type historique ; les 40 caractères hexadécimaux suivants sont le SHA-1 des 31 premiers Mio du fichier tel qu'Amcache l'a vu.
La ruche elle-même est écrite par la tâche planifiée Microsoft
Compatibility Appraiser
(\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser).
Sur Windows 10/11 récents, elle s'exécute environ une fois par jour, ce
qui fait d'Amcache.hve l'un des meilleurs artefacts de « présence
longitudinale » à votre disposition.
Les journaux de transactions comptent#
Comme toute ruche du registre, Amcache.hve possède des journaux
compagnons .LOG1 / .LOG2. Si vous copiez la ruche sans ses journaux,
vous risquez de manquer les écritures les plus récentes. AmcacheParser
gère correctement les journaux si vous pointez sur un répertoire ou
fournissez les journaux à côté de la ruche — collectez-les toujours
ensemble.
Installer AmcacheParser#
Il existe trois moyens courants d'obtenir l'outil. Tous produisent le même binaire ; choisissez celui qui correspond à votre environnement.
Option 1 — Get-ZimmermanTools (recommandé)#
L'installeur officiel est un petit script PowerShell qui télécharge la suite entière dans un dossier cible et la maintient à jour.
# Créer un dossier d'outils et récupérer les builds .NET 6 les plus récents
mkdir C:\Tools\ZTools
cd C:\Tools\ZTools
Invoke-WebRequest `
-Uri 'https://raw.githubusercontent.com/EricZimmerman/Get-ZimmermanTools/master/Get-ZimmermanTools.ps1' `
-OutFile Get-ZimmermanTools.ps1
.\Get-ZimmermanTools.ps1 -Dest C:\Tools\ZTools -NetVersion 6Une fois terminé, AmcacheParser.exe se trouve sous
C:\Tools\ZTools\net6\AmcacheParser\. Relancer le script plus tard met
à jour tous les outils en place.
Option 2 — Téléchargement direct depuis ericzimmerman.github.io#
La page d'accueil ericzimmerman.github.io propose un zip pour chaque outil. C'est la bonne voie si l'égress PowerShell est bloqué sur le poste analyste.
Option 3 — Intégré à KAPE ou Velociraptor#
Si vous utilisez KAPE ou Velociraptor, AmcacheParser est déjà embarqué dans leurs catalogues de modules / artefacts. Vous ne l'installez généralement pas séparément — vous l'invoquez via une définition de target / module qui collecte aussi la ruche pour vous.
Pour un panorama complet des miroirs, des sommes de contrôle et des schémas d'installation en environnement isolé, voir le guide de téléchargement d'AmcacheParser.
Démarrage rapide : analyser une ruche#
L'invocation minimale tient en deux options :
AmcacheParser.exe `
-f "C:\Triage\Windows\AppCompat\Programs\Amcache.hve" `
--csv "C:\Triage\Output\Amcache"Cela écrit un CSV par catégorie Inventory* dans le dossier de sortie.
Pour un incident réel, vous voudrez presque toujours quelques options
supplémentaires :
AmcacheParser.exe `
-f "C:\Triage\Windows\AppCompat\Programs\Amcache.hve" `
--csv "C:\Triage\Output\Amcache" `
--csvf "HOSTNAME_amcache.csv" `
-i `
--mp--csvfcontrôle le nom de fichier de base pour que le triage multi-hôtes reste navigable.-iinclut les entrées marquéesIsOSComponent = true(désactivé par défaut car elles gonflent le bruit).--mp(« multi-pass ») analyse les entrées orphelines / non associées qui seraient sinon ignorées.
La matrice complète des options se trouve dans le cheatsheet CLI AmcacheParser.
Charger la sortie dans Timeline Explorer#
Les CSVs sont conçus pour le
Timeline Explorer d'Eric. Glissez
n'importe quel *_UnassociatedFileEntries.csv ou
*_AssociatedFileEntries.csv dans Timeline Explorer pour obtenir des
colonnes triables, filtrables, et une vue instantanée « toute
l'activité sur cette fenêtre ».
Lire la sortie CSV#
AmcacheParser écrit un schéma différent par catégorie. Les quatre que vous toucherez sur presque chaque cas :
| Fichier | Contenu |
|---|---|
*_UnassociatedFileEntries.csv |
Fichiers qu'Amcache a vus sur disque et qui ne sont pas liés à une Inventory Application enregistrée. Le tableau pivot le plus riche pour les binaires inconnus. |
*_AssociatedFileEntries.csv |
Fichiers liés à une InventoryApplication (produit installé). |
*_DriverBinaries.csv |
Binaires de pilotes chargés — critique pour les enquêtes sur les rootkits noyau. |
*_DeviceContainers.csv |
Historique des périphériques connectés (imprimantes, écrans, contrôleurs amovibles). |
Les colonnes sur lesquelles vous pivoterez le plus souvent :
ApplicationName/Name— nom d'affichage résolu par Windows.FullPath— chemin complet au moment de l'inventaire.FileExtension— pratique pour filtrer.exe/.dll.Hash(SHA-1) — leFileIdsans le préfixe"0000".LinkDate— heure de compilation PE.FileVersionString,ProductName,Publisher,PublisherName.Size— taille du fichier en octets au moment de l'inventaire.IsPeFile,IsOsComponent— filtres rapides.KeyLastWriteTimestamp— last-write au niveau registre de la clé contenante. Traitez ceci comme le pivot « heure d'inventaire ».
Chaque colonne, y compris des catégories Inventory moins courantes,
est documentée dans
Les colonnes de sortie d'AmcacheParser expliquées.
Exemples concrets#
Quelques requêtes qui gagnent leur pain sur des cas réels :
Trouver les fichiers PE non signés dans des chemins inscriptibles par l'utilisateur (post-traitement en PowerShell) :
Import-Csv .\HOST_amcache_UnassociatedFileEntries.csv |
Where-Object {
$_.IsPeFile -eq 'True' -and
-not $_.Publisher -and
$_.FullPath -match '\\Users\\|\\ProgramData\\|\\AppData\\'
} |
Select-Object KeyLastWriteTimestamp, FullPath, Hash, Size |
Sort-Object KeyLastWriteTimestampPivoter sur un SHA-1 connu comme malveillant sur plusieurs hôtes :
Get-ChildItem -Recurse -Filter *_UnassociatedFileEntries.csv |
ForEach-Object {
Import-Csv $_.FullName |
Where-Object { $_.Hash -eq 'da39a3ee5e6b4b0d3255bfef95601890afd80709' } |
Select-Object @{n='Host';e={$_.PSChildName.Split('_')[0]}}, FullPath, KeyLastWriteTimestamp
}Où s'inscrit AmcacheParser dans un workflow DFIR#
La plupart des enquêteurs ouvrent Amcache après Prefetch et les journaux d'événements, car il répond à une question différente :
| Artefact | Question à laquelle il répond |
|---|---|
| Prefetch | « Ce binaire s'est-il exécuté sur cet hôte ? » |
| Journal d'événements (4688 / Sysmon 1) | « Ce processus a-t-il tourné, avec quelle ligne de commande, depuis quel parent ? » |
ShimCache (AppCompatCache) |
« Ce binaire a-t-il été récemment manipulé par le loader ? » |
| Amcache | « Ce binaire a-t-il déjà été présent sur cet hôte, avec quel hash et à quel chemin ? » |
L'atout maître d'Amcache est la récupération de binaires supprimés : un wiper peut effacer le fichier du disque, mais le snapshot d'inventaire persiste dans la ruche jusqu'au prochain passage de l'appraiser — et même alors, le run précédent reste souvent dans les journaux de transactions. Nous couvrons en profondeur la distinction Amcache / Prefetch / ShimCache dans Comprendre Amcache pour l'analyse forensique Windows.
Schémas de pipeline#
Les deux schémas de production les plus courants :
-
KAPE collect + KAPE parse. Le target
Amcachede KAPE collecte la ruche + les journaux ; son moduleAmcacheParserexécute l'analyseur dans un dossier de sortie par hôte. Une commande, prêt pour Timeline Explorer. -
Windows.Forensics.AmcacheVelociraptor. L'artefact Velociraptor récupère la ruche, exécute AmcacheParser côté serveur et téléverse le CSV. Couplez-le à un hunt pour le déployer sur des milliers de postes.
Les deux schémas sont couverts avec des commandes copiables dans le cheatsheet CLI.
L'alternative dans le navigateur#
L'outil hébergé sur ce site est une réimplémentation du chemin de lecture en Rust + WebAssembly. Il existe parce qu'il y a des situations où la CLI Windows n'est pas le bon outil sur le moment :
- Un analyste non Windows ouvre un
.hvedans son navigateur sans installer le runtime .NET ni un build Zimmerman. - Un étudiant veut voir à quoi ressemble Amcache avant de payer un laboratoire DFIR complet.
- Triage sur un poste verrouillé où déployer un nouveau binaire nécessite un ticket de change.
- Montrer une ruche à une partie prenante en partage d'écran sans l'exposer à un serveur tiers.
Le fichier ne quitte jamais votre navigateur. L'analyse se fait côté client en WebAssembly ; pas d'upload, pas de traitement côté serveur, pas de télémétrie. Déposez une ruche sur la page d'accueil pour essayer.
Pour des investigations complètes sur un poste analyste Windows, le
AmcacheParser.exe officiel d'Eric reste le bon outil — il gère
chaque cas limite, s'intègre au reste de la suite et produit le format
CSV qu'attend chaque outil aval. La version navigateur est pour le
triage, la formation, et les cas où installer quoi que ce soit est
la mauvaise réponse.
Questions fréquentes#
AmcacheParser est-il gratuit ?#
Oui. Il est publié sous une licence permissive par Eric Zimmerman et est libre pour tout usage, y compris les missions DFIR commerciales.
Sur quels systèmes d'exploitation tourne AmcacheParser ?#
AmcacheParser.exe est une application .NET 6 / .NET 9. Elle tourne
nativement sur Windows et sur Linux / macOS via le runtime .NET
(dotnet AmcacheParser.dll sur les hôtes non Windows avec le build
framework-dependent).
AmcacheParser modifie-t-il la ruche ?#
Non. Il ouvre la ruche en lecture seule et n'écrit que la sortie CSV
au chemin spécifié par --csv.
Quelle différence entre AmcacheParser et le plugin amcache de RegRipper ?#
Les deux analysent la même ruche. Le plugin RegRipper produit un rapport texte lisible ; AmcacheParser produit du CSV structuré avec une ligne par entrée d'inventaire, beaucoup plus simple à charger dans un tableur, un SIEM ou Timeline Explorer. Les playbooks modernes utilisent AmcacheParser ; RegRipper reste populaire pour l'analyse interactive ponctuelle.
Amcache enregistre-t-il tous les binaires exécutés ?#
Non. Amcache enregistre la présence et les métadonnées d'inventaire, pas l'exécution. Un binaire peut apparaître dans Amcache sans avoir jamais tourné, et inversement un binaire peut tourner sans apparaître dans Amcache si l'appraiser n'est pas repassé depuis. Couplez avec Prefetch et les événements de création de processus pour prouver l'exécution.
Où se trouve Amcache.hve sur un système actif ?#
C:\Windows\AppCompat\Programs\Amcache.hve, avec les journaux de
transactions Amcache.hve.LOG1 et Amcache.hve.LOG2 à côté. Le
target Amcache de KAPE collecte les trois.
Peut-on utiliser AmcacheParser sur une image mémoire ?#
Pas directement. AmcacheParser analyse le format de ruche sur disque. Pour analyser Amcache à partir de la mémoire, utilisez les plugins registre de Volatility pour extraire la ruche, puis fournissez-la à AmcacheParser.
Pour aller plus loin#
- Guide de téléchargement d'AmcacheParser — sources, miroirs, vérification d'intégrité, installations en environnement isolé.
- Les colonnes de sortie d'AmcacheParser expliquées — chaque colonne CSV, ce qu'elle signifie et comment pivoter dessus.
- Cheatsheet CLI AmcacheParser — chaque option de ligne de commande avec des exemples concrets et des schémas de pipeline.
- Comprendre Amcache pour l'analyse forensique Windows — ce que la ruche enregistre vraiment et pourquoi c'est important.
- Comparatif des analyseurs Amcache — AmcacheParser vs l'outil navigateur vs Volatility vs RegRipper, et quand utiliser chacun.
Prêt à regarder une ruche tout de suite ? Déposez-en une sur la page d'accueil de l'analyseur — elle ne quitte jamais votre navigateur.
Articles liés
- Les colonnes de sortie d'AmcacheParser expliquées : chaque champ CSV décodé
Référence champ par champ pour la sortie CSV d'AmcacheParser — FileId, PathHash, ProgramId, LinkDate, BinFileVersion, IsPeFile et toutes les autres colonnes, avec les pivots qui comptent en DFIR.
- Guide de téléchargement d'AmcacheParser : sources officielles, miroirs et vérification
Tous les moyens de télécharger AmcacheParser d'Eric Zimmerman — Get-ZimmermanTools, téléchargement direct, KAPE, Velociraptor — avec vérification par somme de contrôle et schémas d'installation en environnement isolé.
- Cheatsheet CLI AmcacheParser : chaque option, avec des exemples concrets
Référence ligne de commande pratique pour AmcacheParser d'Eric Zimmerman — chaque option expliquée, avec des schémas KAPE, Velociraptor et batch PowerShell prêts à coller.
- Comparatif des analyseurs Amcache : AmcacheParser CLI, outil navigateur, Volatility, RegRipper
Comparaison côte à côte des quatre façons d'analyser une ruche Windows Amcache.hve en 2026 — AmcacheParser CLI d'Eric Zimmerman, outil navigateur, Volatility 3 et RegRipper.