Le ShimCache Windows — aussi appelé Application Compatibility Cache (AppCompatCache) — est l'un des artefacts les plus cités en réponse à incident sur Windows. C'est aussi l'un des plus mal compris. Cette courte introduction explique ce qu'il enregistre réellement, où il se trouve, et comment les enquêteurs doivent (ou ne doivent pas) l'interpréter.
Ce que le ShimCache enregistre
Lorsque Windows examine un exécutable pour décider s'il faut appliquer un shim de compatibilité, il enregistre cet examen dans le ShimCache. Jusqu'à 1 024 entrées sont conservées par machine, chacune contenant au minimum :
- le chemin complet de l'exécutable,
- l'horodatage
$STANDARD_INFORMATIONde dernière modification du fichier, - et, sur les anciennes versions de Windows, des drapeaux indiquant si le fichier a été exécuté.
Le cache réside en mémoire volatile pendant que le système fonctionne et n'est écrit dans le registre qu'à l'arrêt. Ce détail de timing est crucial : un redémarrage à froid ou une VM éteinte brutalement peut perdre intégralement les entrées récentes.
Où il se trouve
Le ShimCache se trouve dans la ruche SYSTEM à :
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache
La valeur est un blob binaire unique dont la structure varie selon la version de Windows — XP, 7, 8, 8.1, 10 et 11 utilisent chacune une mise en page légèrement différente. L'analyser hors ligne signifie extraire la valeur puis la décoder selon le bon schéma. C'est exactement ce que fait cet outil, entièrement dans votre navigateur, sans aucun upload.
Valeur forensique
Le ShimCache sert le plus souvent à démontrer l'existence d'un programme : un binaire donné a été, à un moment donné, présent sur le disque d'un hôte précis. C'est utile pour :
- attribuer la présence d'un malware même après l'effacement du fichier,
- enrichir des chronologies d'exécution construites à partir de Prefetch ou d'AmCache,
- corroborer les constats d'EDR ou de télémétrie Sysmon.
Trois pièges qui font mal
- L'horodatage est le mtime du fichier, pas son heure d'exécution. Un binaire copié sans préservation des horodatages affichera son mtime d'origine.
- Une entrée n'est pas une preuve d'exécution. Sur Windows 10 et 11, le drapeau d'exécution dans le cache a été supprimé. Couplez le ShimCache à Prefetch, AmCache et aux journaux d'événements avant d'affirmer qu'un programme a tourné.
- Le cache se remplit, expulse les anciennes entrées, et est vidé à l'arrêt. Les entrées récentes qui n'ont jamais atteint le disque sont définitivement perdues.
Utilisé avec rigueur et corroboré par d'autres artefacts, le ShimCache est un point pivot à fort signal. Traitez chaque entrée comme une hypothèse à confirmer, pas comme une conclusion.
Pour aller plus loin
Pour creuser, le reste du blog se découpe en deux groupes thématiques.
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ù est stocké le ShimCache, et quand est-il écrit ?
- Prefetch, AmCache, ShimCache : référence rapide des artefacts d'exécution de programmes
- Analyser le ShimCache : le format binaire Windows 10 et 11
L'utiliser dans des enquêtes
- Comment acquérir une ruche SYSTEM Windows pour l'analyse ShimCache hors ligne
- Chasser les malwares avec le ShimCache : un workflow pas à pas
- Utiliser le ShimCache dans les enquêtes sur les ransomwares
- Extraire le ShimCache depuis un dump mémoire
- Les attaquants peuvent-ils effacer le ShimCache ? Anti-forensique et détection
- Construire une chronologie d'exécution de programmes à partir d'une ruche SYSTEM
- Comparatif des parsers ShimCache : Mandiant, Zimmerman, Velociraptor et cet outil