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
| Artefact | Emplacement | Enregistre | Fiabilité pour l'exécution |
|---|---|---|---|
| Prefetch | C:\Windows\Prefetch\*.pf | Chemin, compteur d'exécutions, 8 dernières exécutions, fichiers chargés | Très haute — écrit uniquement au démarrage du processus |
| AmCache | C:\Windows\AppCompat\Programs\Amcache.hve | Chemin, SHA-1, taille, éditeur, date d'install + 1re exécution | Haute — horodatages d'exécution explicites |
| ShimCache | Ruche SYSTEM …\AppCompatCache | Chemin, mtime du fichier | Moyenne — prouve l'existence, implique souvent (pas toujours) l'exécution |
| UserAssist | NTUSER.DAT …\UserAssist | Lancements de programmes GUI par utilisateur via Explorer | Haute — mais uniquement initiés par l'utilisateur, noms encodés ROT13 |
| BAM / DAM | Ruche SYSTEM …\bam\State | Dernière heure d'exécution par utilisateur, pour chaque binaire | Trè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
- AppCompatCacheParser (Zimmerman) — parser ShimCache de référence.
- Artefact ShimCache de Velociraptor — logique de collecte sur système vivant.
- ShimCache & AmCache forensic analysis (Mehrnoush) — étude détaillée basée sur des cas.