Skip to content

Format du fichier thumbcache_*.db : en-tête et entrées

Structure binaire des bases thumbcache et iconcache de Windows, de Vista à Windows 11 : en-tête de fichier, types de cache par version et structure des entrées.

Publié le 5 min de lecture

Cet article documente la structure sur disque des caches de miniatures et d'icônes de l'Explorateur Windows (thumbcache_*.db, iconcache_*.db). Cette structure n'est pas documentée par Microsoft. Ce qui suit est cohérent avec les recherches publiques et les parseurs open source tels que Vinetto et Thumbcache Viewer, et correspond à ce qu'implémente Thumbcache Parser. Tous les entiers sont en little-endian.

En-tête du fichier

OffsetTailleChamp
04Signature CMMM
44Version du format
84Type de cache (index dans la table ci-dessous)

La suite dépend de la version :

VersionÉcrit parOffset 12Offset 16Offset 20Offset 24
0x14Vistapremière entréeentrée disponiblenombre d'entrées–
0x157première entréeentrée disponiblenombre d'entrées–
0x1A8première entréeentrée disponiblenombre d'entrées–
0x1C8 (v2)réservépremière entréeentrée disponiblenombre d'entrées
0x1E8 (v3)réservépremière entréeentrée disponible–
0x1F8.1réservépremière entréeentrée disponible–
0x2010 / 11réservépremière entréeentrée disponible–

Première entrée est l'offset de la première entrée de cache. Entrée disponible marque le début de l'espace libre : les entrées situées après ont été libérées, mais leurs octets sont souvent encore intacts. Un parseur robuste doit vérifier que l'offset de première entrée pointe bien vers CMMM, et revenir à un balayage complet si ce n'est pas le cas.

Types de cache

Le numéro de type de cache correspond à la classe de taille du fichier, et cette table a changé au fil des versions :

Version012345678910111213
Vista / 732962561024sr
8 (all)163248962561024srwideexif
8.11632489625610241600srwideexifwide_alternate
10 / 1116324896256768128019202560srwideexifwide_alternatecustom_stream

Entrée de cache

Les entrées se suivent bout à bout. L'en-tête fait 48 octets sous Windows 7 et 56 octets sous Vista et Windows 8+ :

ChampVista78 → 11
Signature CMMM000
Taille de l'entrée (entrée complète)444
Hash d'entrée / ID de cache (u64)888
Extension source (4 × UTF-16)16––
Taille de l'identifiant241616
Taille du padding282020
Taille des données322424
Largeur––28
Hauteur––32
Inconnu362836
Somme de contrôle des données (u64)403240
Somme de contrôle de l'en-tête (u64)484048

Après l'en-tête viennent l'identifiant (UTF-16LE, généralement l'ID de cache écrit sous forme de 16 chiffres hexadécimaux), le padding, puis les données de l'image. L'entrée suivante commence à offset + taille de l'entrée.

Les entrées avec une taille de données de 0 sont fréquentes. Ce sont des emplacements réservés pour des éléments dont la miniature n'a pas été générée ou a été abandonnée. Elles portent tout de même un ID de cache et méritent donc de figurer dans une chronologie.

Vérifications de cohérence lors du carving

Lors d'un balayage à la recherche de CMMM en dehors de la chaîne active, rejetez un candidat sauf si :

  • la taille de l'entrée est au moins égale à la longueur de l'en-tête et tient dans le fichier ;
  • en-tête + identifiant + padding + données ≤ taille de l'entrée ;
  • la taille de l'identifiant est paire et raisonnablement petite.

Ces vérifications rendent les faux positifs rares, car CMMM apparaît peu souvent dans les données d'image.

Les données de l'image

La charge utile est un fichier image complet : BM (BMP), FF D8 FF (JPEG) ou 89 50 4E 47 (PNG). Hachez ces octets tels quels pour le rapport. Windows 10 et 11 stockent surtout des BMP 32 bits top-down ou bottom-up, que tout navigateur moderne peut afficher.

thumbcache_idx.db

L'index (IMMM) fait correspondre les ID de cache aux offsets des entrées dans chaque base de taille, avec des indicateurs (flags). Il ne contient aucune image, et sa structure varie davantage d'une version à l'autre. Il est surtout utile pour confirmer qu'un ID a bien été mis en cache, même après le nettoyage des bases de taille.

Pour aller plus loin

Articles liés

Ce que prouvent les fichiers thumbcache_*.db dans une enquête, comment récupérer des miniatures supprimées, et les réserves à formuler avant un rapport.
Comparatif de Thumbcache Viewer, Vinetto, des suites forensiques et du parsing dans le navigateur : plateformes, formats, récupération des entrées et noms.