Prefetch, AmCache, ShimCache : référence rapide des artefacts d'exécution de programmes

4 min de lecture

TL;DR. À lire dans cet ordre : Prefetch (le plus fort, quand activé) → BAM/DAM (dernière exécution par utilisateur sur Win10+, criminellement sous-utilisé) → AmCache (identification SHA-1) → ShimCache (existence du fichier) → UserAssist (lancements via Explorer uniquement, encodé ROT13). Triangulez ; aucun artefact seul ne ferme un dossier.

Il n'existe pas un seul artefact Windows qui réponde parfaitement à « ce programme a-t-il tourné, quand, et par qui ? ». Les enquêteurs triangulent sur plusieurs. Voici la short list pratique, avec ce que chacun vous dit et ce qu'il ne dit pas.

La short list

ArtefactEmplacementEnregistreFiabilité pour l'exécution
PrefetchC:\Windows\Prefetch\*.pfChemin, compteur d'exécutions, 8 dernières exécutions, fichiers chargésTrès haute — écrit uniquement au démarrage du processus
AmCacheC:\Windows\AppCompat\Programs\Amcache.hveChemin, SHA-1, taille, éditeur, date d'install + 1re exécutionHaute — horodatages d'exécution explicites
ShimCacheRuche SYSTEM …\AppCompatCacheChemin, mtime du fichierMoyenne — prouve l'existence, implique souvent (pas toujours) l'exécution
UserAssistNTUSER.DAT …\UserAssistLancements de programmes GUI par utilisateur via ExplorerHaute — mais uniquement initiés par l'utilisateur, noms encodés ROT13
BAM / DAMRuche SYSTEM …\bam\StateDernière heure d'exécution par utilisateur, pour chaque binaireTrès haute — Win10+, facile à analyser, souvent oublié

À lire dans l'ordre de priorité

1. Prefetch en premier. Un fichier .pf est ce qui se rapproche le plus d'un reçu « ça a tourné » sur Windows. Il stocke jusqu'aux huit dernières heures d'exécution et reste activé par défaut sur les postes de travail. PECmd d'Eric Zimmerman est le parser standard.

2. BAM / DAM ensuite. Background et Desktop Activity Moderator sont des services qui régulent les apps en arrière-plan. Ils conservent un horodatage « dernière exécution » par utilisateur et par binaire dans la ruche SYSTEM sous …\bam\State et …\dam\State. Présents sur Windows 10/11, peu bruyants, faciles à lire avec n'importe quel outil de registre.

3. AmCache en troisième. AmCache sauve la mise là où Prefetch est désactivé (serveurs !) et fournit des hashs SHA-1 pour identifier les fichiers sans ambiguïté. Voir ShimCache vs AmCache pour le détail.

4. ShimCache en quatrième. Traitez-le comme un ancrage « le fichier a existé », pas une affirmation d'exécution. Le billet sur la preuve d'exécution explique exactement pourquoi.

5. UserAssist en dernier. Preuve forte de lancement interactif (initié par Explorer), mais aveugle à tout ce qui est lancé depuis un shell, une tâche planifiée ou un service. Utile pour « l'utilisateur a-t-il cliqué sur ceci ? », pas pour « ce binaire a-t-il déjà tourné ? ».

Pièges fréquents

  • Prefetch peut être désactivé sur les SSD ou par politique. N'assumez pas que son absence signifie qu'il ne s'est rien passé.
  • AmCache tourne et expire. Les anciennes entrées sont purgées. Collectez l'artefact tôt dans votre triage.
  • Les horodatages ShimCache sont le mtime du fichier, pas l'heure d'exécution. Beaucoup d'enquêteurs l'ont appris à leurs dépens.
  • Les noms UserAssist sont encodés en ROT13. Trivial à décoder mais déroute le lecteur occasionnel.
  • BAM est criminellement sous-utilisé. C'est l'un des signaux « ce binaire a-t-il tourné pour cet utilisateur ? » les plus propres sur Windows moderne.

Outils

Pour une analyse hors ligne fidèle, la suite d'outils Eric Zimmerman est le standard de facto — AppCompatCacheParser, AmcacheParser, PECmd, RBCmd et compagnie. La bibliothèque d'artefacts Velociraptor gère le triage à chaud. Et pour le ShimCache spécifiquement, vous pouvez utiliser le Shimcache Parser directement dans votre navigateur sans rien installer.

Pour aller plus loin

Articles connexes