La plupart des analystes croisent le ShimCache de la même manière : quelqu'un dans l'équipe lance "sors l'AppCompatCache, vois si le binaire y est", et ça marche assez souvent pour que l'artefact se forge une réputation qu'il ne mérite pas tout à fait. J'ai passé assez d'heures à débattre de lignes du ShimCache en revues de dossier pour savoir que l'artefact vaut son pesant d'or, mais seulement si on le traite pour ce qu'il est réellement. Pas un journal d'exécution. Pas un audit de processus. Une liste d'exécutables que Windows a regardés d'assez près pour décider si un shim de compatibilité devait s'activer.
C'est le cadre. Le reste, c'est de la mécanique.
Ce que le cache enregistre vraiment
L'Application Compatibility Cache, presque toujours abrégé en ShimCache ou AppCompatCache, vit dans le hive SYSTEM et contient jusqu'à environ 1 024 entrées sur Windows moderne. Chaque entrée porte le chemin complet d'un exécutable, l'heure de dernière modification $STANDARD_INFORMATION du fichier, et (sur les anciennes versions) un flag décrivant si le binaire a effectivement été exécuté. Ce flag a disparu sur Windows 10 et 11. Fais comme s'il n'avait jamais existé.
Windows construit le cache en mémoire à chaque démarrage et ne l'écrit sur disque qu'à un arrêt propre. Un BSOD, un hard reset ou un kill de VM au niveau de l'hyperviseur engloutit tout ce qui se trouvait en mémoire volatile. Ce seul fait explique la moitié des histoires "mais j'ai vu le binaire en production" qui se transforment en tickets "le hive sur disque ne montre rien".
Où il se trouve
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache
Le AppCompatCache final est une valeur, pas une sous-clé. Son contenu est un unique blob binaire dont la disposition a changé à chaque version majeure de Windows : XP, 7, 8, 8.1 et la famille 10/11 utilisent toutes des schémas différents. Parser hors ligne implique de récupérer le hive SYSTEM (plus ses journaux de transactions SYSTEM.LOG1 et SYSTEM.LOG2) et de décoder le blob avec la bonne version. Cet outil parse ce seul fichier de hive SYSTEM dans ton navigateur, sans téléversement. Il ne rejoue pas les journaux : si le hive est dirty, rejoue-les d'abord avec rla.exe d'Eric Zimmerman.
Pourquoi les enquêteurs y recourent
Le ShimCache gagne sa place parce qu'il survit. Un attaquant peut déposer un binaire, l'exécuter, le supprimer, vider le dossier Prefetch, et le ShimCache conserve toujours le chemin complet. Cela en fait un témoin d'existence solide pour :
- Du malware déjà effacé du disque.
- Des binaires système renommés utilisés comme charges utiles living-off-the-land.
- Du tooling déployé depuis un partage réseau que personne n'a jamais récupéré localement.
Combine les données de chemin avec AmCache pour l'attribution par hash et tu peux pivoter vers du threat intel même quand le fichier est parti depuis longtemps.
Trois pièges classiques
- L'horodatage est la mtime du fichier, pas le moment où le programme a tourné. Le timestomping change ce que le cache enregistre.
- Une entrée n'est pas une preuve d'exécution. Le cache Win10/11 n'a aucun flag d'exécution.
- Le cache n'est vidé qu'à l'arrêt propre. Les reboots brutaux détruisent silencieusement les entrées récentes.
Traite chaque ligne comme une hypothèse. Corrobore avec Prefetch, AmCache, EVTX / Sysmon ou les hives du registre avant d'écrire quoi que ce soit de définitif dans un rapport.
Pour aller plus loin
Le reste du blog s'organise en deux ensembles.
Comprendre le ShimCache
- ShimCache vs AmCache : quel artefact Windows répond à quelle question
- Le ShimCache prouve-t-il qu'un programme a été exécuté ?
- Où le ShimCache est-il stocké, et quand est-il écrit ?
- Prefetch, AmCache, ShimCache : référence rapide pour les preuves d'exécution
- Parser le ShimCache : le format binaire de Windows 10 et 11
L'utiliser dans des enquêtes
- Comment acquérir un hive SYSTEM Windows pour une analyse hors ligne du ShimCache
- Chasser du malware avec le ShimCache : un workflow pas à pas
- Utiliser le ShimCache dans les enquêtes ransomware
- Extraire le ShimCache d'un dump mémoire
- Les attaquants peuvent-ils vider le ShimCache ? Anti-forensique et détection
- Construire une chronologie d'exécution de programmes à partir d'un hive SYSTEM
- Comparer les parsers ShimCache : Mandiant, Zimmerman, Velociraptor et cet outil