Où se trouve Amcache.hve sur disque (et comment le collecter)

Si vous vous tournez vers Amcache, la première question pratique est « où est le fichier ? ». Cette page est la réponse définitive pour chaque version de Windows que vous risquez de rencontrer, plus la bonne manière de collecter la ruche pour ne pas perdre silencieusement les données les plus récentes.

Pour le contexte plus large sur ce qu'Amcache enregistre et pourquoi, voir la référence complète Amcache.


La réponse courte#

Sur chaque build Windows desktop et serveur supporté depuis Windows 8, la ruche se trouve à :

C:\Windows\AppCompat\Programs\Amcache.hve
C:\Windows\AppCompat\Programs\Amcache.hve.LOG1
C:\Windows\AppCompat\Programs\Amcache.hve.LOG2

Vous voulez les trois fichiers, à chaque fois. Les fichiers .LOG1 et .LOG2 sont les journaux de transactions de la ruche — si vous ne prenez qu'Amcache.hve, vous pouvez silencieusement manquer les écritures les plus récentes.


La réponse longue : par version de Windows#

Amcache a bougé à ses débuts. L'historique complet :

Windows 7 / Windows Server 2008 R2#

Il n'y a pas d'Amcache.hve. L'artefact équivalent est RecentFileCache.bcf, situé à :

C:\Windows\AppCompat\Programs\RecentFileCache.bcf

C'est un fichier binaire à plat (pas une ruche du registre) avec bien moins de métadonnées que l'Amcache moderne — typiquement juste des chemins de fichiers et un seul horodatage. AmcacheParser ne l'analyse pas ; pour RecentFileCache.bcf, vous voulez un analyseur dédié comme RecentFileCacheParser (aussi dans la suite Zimmerman) ou un script Python issu de la communauté DFIR.

Si vous lisez ceci en 2026, vous avez peu de chances de rencontrer Windows 7 en production, mais il apparaît encore dans des environnements legacy et de vieilles images de triage.

Windows 8 / 8.1 / Server 2012 / 2012 R2#

La ruche Amcache.hve existe au chemin moderne, mais le schéma est le schéma legacy avec seulement les clés Root\Programs et Root\File :

C:\Windows\AppCompat\Programs\Amcache.hve
C:\Windows\AppCompat\Programs\Amcache.hve.LOG1
C:\Windows\AppCompat\Programs\Amcache.hve.LOG2

AmcacheParser gère le schéma legacy et produit un ProgramEntries.csv à partir de Root\Programs. Il y a bien moins de détails par fichier que sur Windows 10+.

Windows 10 / 11 (actuels)#

Même chemin que sous Windows 8, mais la ruche contient désormais le schéma Inventory* complet (ajouté dans Windows 10 build 1709, Fall Creators Update). C'est ce que vise la plupart de l'analyse moderne :

C:\Windows\AppCompat\Programs\Amcache.hve
C:\Windows\AppCompat\Programs\Amcache.hve.LOG1
C:\Windows\AppCompat\Programs\Amcache.hve.LOG2

Windows Server 2016 / 2019 / 2022 / 2025#

Chemin identique à Windows 10/11. Le schéma est le même. L'appraiser s'exécute moins fréquemment sur les serveurs que sur les desktops (souvent plusieurs jours entre passages plutôt que chaque jour), donc l'horodatage de « dernière écriture » de la ruche tend à être plus ancien sur un serveur que sur un poste de travail dans le même environnement. Voir Amcache sur Windows Server pour les particularités serveur.


Dans une image disque forensique#

Lorsque vous travaillez avec une image acquise plutôt qu'avec un système actif, le fichier se trouve au même chemin à l'intérieur de la partition C: de l'image :

<image>\Windows\AppCompat\Programs\Amcache.hve
<image>\Windows\AppCompat\Programs\Amcache.hve.LOG1
<image>\Windows\AppCompat\Programs\Amcache.hve.LOG2

Si vous avez monté l'image en lecture seule (via Arsenal Image Mounter, FTK Imager, ou losetup + mount -o ro sous Linux), le chemin est littéralement le chemin système de fichiers sous le point de montage. AmcacheParser prend un chemin de fichier normal et lit la ruche sans verrou — aucune manipulation spéciale nécessaire.

Volume Shadow Copies#

Sur un poste de travail qui tourne depuis des mois, vous pouvez trouver plusieurs copies d'Amcache.hve dans les Volume Shadow Copies. Chaque shadow copy est un snapshot ponctuel du volume, et chacune contient son propre snapshot d'Amcache.hve et de ses journaux.

Pour une enquête où vous suspectez du sabotage anti-forensique de la ruche active, vérifiez toujours les shadow copies. Elles sont montées à des chemins comme :

\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\AppCompat\Programs\Amcache.hve
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\Windows\AppCompat\Programs\Amcache.hve
...

Vous pouvez les énumérer avec vssadmin list shadows sur un système actif ou avec vshadowmount de libvshadow sur une image forensique. Chaque copie est une cible d'analyse séparée — passez-les toutes à AmcacheParser et diffez la sortie si vous suspectez que la ruche active a été modifiée.


Sur un système actif#

Si vous devez absolument lire la ruche sur un hôte Windows en cours d'exécution (par exemple, pendant un triage sans temps pour une image complète) :

Ne parsez pas C:\Windows\AppCompat\Programs\Amcache.hve en place. La ruche est ouverte par le système ; la lire directement est peu fiable et de mauvaise pratique forensique.

Copiez d'abord la ruche + les deux journaux dans un répertoire de travail. Le pattern PowerShell standard :

$target = 'C:\Triage\Amcache'
New-Item -ItemType Directory -Path $target -Force | Out-Null
 
# Need elevated PowerShell. Copy hive + logs together.
Copy-Item 'C:\Windows\AppCompat\Programs\Amcache.hve'      $target -Force
Copy-Item 'C:\Windows\AppCompat\Programs\Amcache.hve.LOG1' $target -Force
Copy-Item 'C:\Windows\AppCompat\Programs\Amcache.hve.LOG2' $target -Force
 
# Hash everything for chain of custody
Get-ChildItem $target -Filter Amcache.hve* |
  ForEach-Object { Get-FileHash -Algorithm SHA256 $_.FullName }

Si le système de fichiers refuse de copier Amcache.hve parce qu'il est maintenu ouvert par l'appraiser, le fallback est d'utiliser un lecteur de volume brut :

  • RawCopy.exe (de la suite Joakim Schicht) lit le fichier en contournant les verrous du système de fichiers.
  • Get-RawFile en PowerShell fait de même via CreateFile avec FILE_FLAG_BACKUP_SEMANTICS.
  • KAPE utilise la même technique en interne — voir la section suivante.

Collecte avec KAPE#

Le target Amcache de KAPE est la façon la plus simple et correcte de collecter la ruche sur un système actif ou imagé :

.\kape.exe `
  --tsource C: `
  --target Amcache `
  --tdest .\out\HOST01\collected

Ce que KAPE fait :

  1. Contourne les verrous du système de fichiers en utilisant son lecteur de volume brut.
  2. Copie Amcache.hve + Amcache.hve.LOG1 + Amcache.hve.LOG2 dans out\HOST01\collected\C\Windows\AppCompat\Programs\.
  3. Préserve les horodatages originaux et écrit un journal de ce qui a été collecté.

Couplez le target Amcache avec le module AmcacheParser pour un pipeline collecte-et-analyse en une ligne. Voir le cheatsheet CLI AmcacheParser pour les patterns KAPE.


Collecte avec Velociraptor#

Pour la collecte sur parc, l'artefact Windows.Forensics.Amcache de Velociraptor gère cela à distance :

artifacts:
  - Windows.Forensics.Amcache
  parameters:
    - name: AmcacheGlob
      value: 'C:\Windows\AppCompat\Programs\Amcache.hve*'

Le * final dans le glob est intentionnel — il match la ruche et les deux journaux de transactions en un seul passage. L'artefact télécharge AmcacheParser si nécessaire, l'exécute côté serveur et téléverse la sortie CSV. Couplez-le à un hunt pour le faire tourner sur des milliers d'endpoints selon un planning.


Erreurs de collecte courantes#

Une courte liste d'erreurs qui reviennent encore et encore en travail d'incident, dans un ordre approximatif de fréquence :

  1. Copier seulement Amcache.hve sans les fichiers .LOG1 / .LOG2. Fait silencieusement tomber les écritures les plus récentes. Copiez toujours les trois.
  2. Lire la ruche active en place. Parfois ça marche, parfois ça produit une erreur d'analyse, parfois ça produit une analyse plausible mais fausse. Copiez toujours d'abord.
  3. Oublier les Volume Shadow Copies dans une enquête sur sabotage. La ruche active peut avoir été effacée ; les shadow copies préservent l'historique.
  4. Hasher la ruche après l'analyse. Hashez avant l'analyse aussi, pour prouver que l'analyse ne l'a pas modifiée.
  5. Ne pas préserver les horodatages sur les copies collectées. Utilisez Copy-Item -Force (qui préserve) ou robocopy avec /COPY:DAT. Le LastWriteTime original du fichier de ruche est lui-même une preuve utile.

Voir aussi#

Vous voulez regarder une ruche que vous venez de collecter sans rien installer ? Déposez-la sur la page d'accueil de l'analyseur — elle ne quitte jamais votre navigateur.

Articles liés

Retour à tous les articles