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
shimcachememde 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.