Aller au contenu

Où se trouve la clé de registre Amcache ?

Amcache est sa propre ruche autonome, pas une clé sous HKLM. Le fichier réside à :

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

Quand le Compatibility Appraiser la charge (ou quand vous la chargez vous-même avec reg load), le contenu se monte sous HKLM\Amcache avec :

Root\
├── InventoryApplicationFile     <- la clé phare
├── InventoryApplication
├── InventoryDriverBinary
├── InventoryDeviceContainer
├── InventoryDevicePnp
├── InventoryApplicationShortcut
├── Programs   (legacy)
└── File       (legacy)

Pour le tour complet clé par clé, voir la structure du registre Amcache.

« Clé de registre » vs « fichier de ruche » — la distinction qui fait trébucher#

La raison pour laquelle « où se trouve la clé de registre Amcache » est une question source de confusion, c'est qu'Amcache est à la fois et ni l'un ni l'autre de la manière dont les gens s'y attendent :

  • Ce n'est pas une clé posée en permanence sous HKLM\SOFTWARE ou HKLM\SYSTEM comme la plupart des réglages. Vous ne la trouverez pas en parcourant regedit sur un système par défaut.
  • C'est une ruche de registre — le même format binaire que SYSTEM, SOFTWARE et NTUSER.DAT — stockée comme un fichier autonome sur disque. Une fois montée, son contenu est adressé comme des clés de registre sous HKLM\Amcache\Root\....

Donc la réponse honnête à « où est la clé » est : les données vivent dans un fichier (Amcache.hve), et elles ne deviennent un ensemble de clés de registre que lorsque quelque chose — l'appraiser, ou vous — monte ce fichier. En forensique, vous ne touchez presque jamais à la forme montée ; vous copiez le fichier et le parsez hors ligne. L'emplacement du fichier est couvert dans où vit Amcache.hve sur disque.

Pourquoi elle n'est pas dans HKLM par défaut#

Amcache est une ruche montée paresseusement. Windows la charge quand l'appraiser en a besoin et la décharge ensuite. Même schéma que les ruches NTUSER.DAT par utilisateur : montées uniquement quand l'utilisateur est connecté.

Vous pouvez voir si Amcache est actuellement chargée avec :

Get-ChildItem HKLM:\ | Where-Object Name -like '*Amcache*'

En pleine passe de l'appraiser, vous pouvez voir HKLM\Amcache listée. La plupart du temps la ruche est déchargée et le fichier est fermé.

Charger la ruche manuellement#

Si vous voulez la parcourir dans regedit ou reg.exe :

# Copiez la ruche vivante (le fichier est verrouillé tant qu'il est chargé)
Copy-Item 'C:\Windows\AppCompat\Programs\Amcache.hve' 'C:\Triage\' -Force
 
# Chargez la copie
reg load HKLM\TempAmcache 'C:\Triage\Amcache.hve'
 
# Interrogez
reg query HKLM\TempAmcache\Root
reg query HKLM\TempAmcache\Root\InventoryApplicationFile
 
# Déchargez toujours
reg unload HKLM\TempAmcache

Pour du vrai travail DFIR, utilisez AmcacheParser à la place. Il parse la ruche directement sans avoir besoin de la charger sous HKLM, rejoue automatiquement les journaux de transactions, et produit des CSV structurés. reg.exe convient pour de l'exploration ad hoc. Il ne convient pas pour une vraie analyse. Une fois la ruche parsée, comment trouver des preuves d'exécution avec Amcache déroule le reste du workflow.

Ce qui vit sous chaque clé#

Une fois montées, les clés sous Root sont là où se trouve la preuve. La clé phare, InventoryApplicationFile, contient une sous-clé par PE avec son SHA-1, son chemin et son éditeur ; InventoryDeviceContainer et InventoryDevicePnp contiennent l'historique USB et périphériques ; InventoryDriverBinary contient les binaires de pilotes. La signification champ par champ de chaque valeur est dans les colonnes de sortie d'AmcacheParser, et la vue d'ensemble conceptuelle dans comprendre Amcache.

Liés#

Articles liés

← Retour à tous les articles