Comprendre le ShimCache Windows (AppCompatCache)

3 min de lecture

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_INFORMATION de 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

  1. 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.
  2. 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é.
  3. 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

L'utiliser dans des enquêtes