Qu'est-ce que Shimcache (AppCompatCache) ? (glossaire)

Shimcache (aussi appelé AppCompatCache) est le cache maintenu par le noyau qui enregistre jusqu'à 1024 binaires PE que le loader Windows a touchés, avec chemin de fichier, horodatage de modification et un drapeau d'exécution. Il vit comme une seule valeur binaire dans la ruche SYSTEM. Plus ancien qu'Amcache. Plus petit. Plus pauvre. Constamment confondu avec Amcache, et la confusion produit des conclusions erronées.

Les distinctions à retenir : Shimcache est plus court, sans hash, maintenu par le noyau et vidé à l'arrêt. Amcache est plus long, porte des hashes, maintenu en mode utilisateur et écrit en continu.

Shimcache vs Amcache#

Shimcache Amcache
Stockage Ruche SYSTEM, une seule valeur binaire Amcache.hve autonome
Mainteneur Loader noyau Tâche planifiée en mode utilisateur (appraiser)
Entrées max 1024 (LRU) Effectivement illimité
Hash Aucun SHA-1 des 31 premiers MiB
Éditeur / version Aucun Oui
ProgramId Aucun Oui
Frais sur système en marche Non (nécessite arrêt ou mémoire) Oui
Disponible avant Win 8 Oui (depuis XP) Non
Cadence sur Server Active Souvent très lente

Pour une couverture complète, voir Amcache vs Shimcache.

Quand Shimcache l'emporte#

  • « Le loader a-t-il touché ce binaire ? » Le travail entier de Shimcache.
  • Acquisitions en mémoire seule. Le shimcachemem de Volatility extrait proprement d'un dump RAM.
  • Hôtes antérieurs à Win-10-1709 où le schéma Amcache moderne n'existe pas encore.
  • Hôtes durcis avec l'appraiser désactivé. Shimcache est maintenu par le noyau ; l'arrêt de l'appraiser ne l'affecte pas.

Quand Amcache l'emporte#

  • Hashes pour VirusTotal. Shimcache ne peut pas aider.
  • Chasses inter-hôtes. Shimcache n'a ni hash ni ProgramId, uniquement des chemins.
  • Preuves de pilotes et de périphériques. Shimcache concerne uniquement les PE en espace utilisateur.
  • Triage sur un système en marche. Amcache est à jour sur disque ; Shimcache est périmé jusqu'au redémarrage.

Utilisez les deux#

Toujours. Ils se corroborent l'un l'autre :

  • Dans les deux : conclusion forte de type « présent et touché par le loader ».
  • Shimcache uniquement : le loader l'a touché mais l'appraiser ne s'en est pas occupé, ou l'appraiser est désactivé.
  • Amcache uniquement : présent mais le loader ne l'a pas touché dans la fenêtre actuelle de 1024 entrées, ou Shimcache a tourné.

Termes liés#

Articles liés

  • Qu'est-ce que SRUM (SRUDB.dat) ? (glossaire)

    SRUM est la base ESE que Windows utilise pour suivre l'usage des ressources par application, par heure, sur 30 à 60 jours. Le seul artefact Windows avec des totaux d'octets réseau par application. Critique pour l'exfiltration.

  • Qu'est-ce que le ProgramId Amcache ? (glossaire)

    ProgramId est le hash d'identité d'application de 44 caractères qu'Amcache stocke. Stable entre hôtes pour la même installation. Attrape les recompilations et renommages que Hash rate.

  • Qu'est-ce que Windows Prefetch ? (glossaire)

    Windows Prefetch est le répertoire de fichiers .pf qui prouve l'exécution. Jusqu'à 8-10 temps d'exécution par binaire plus les fichiers chargés dans les dix premières secondes. La preuve d'exécution la plus forte sous Windows.

  • Qu'est-ce que LinkDate dans Amcache ? (glossaire)

    LinkDate est le PE TimeDateStamp. Contrôlable par l'attaquant. Utilisez-le pour le regroupement de builds, pas pour les chronologies d'hôte.

Retour à tous les articles