Skip to content

Thumbs.db : Catalog, images Type 1 et partages réseau

Comment Thumbs.db stocke les miniatures, les noms de fichiers d'origine et les dates de modification, pourquoi les images Type 1 semblent corrompues, et où Windows le crée encore.

Publié le 4 min de lecture

Thumbs.db est le cache de miniatures par dossier des anciennes versions de Windows. Il apparaît encore dans les dossiers modernes : sur des disques externes utilisés pour la dernière fois avec des machines de l'ère XP, dans des archives et des sauvegardes, et sur des serveurs de fichiers, où les versions actuelles de Windows le créent toujours. Contrairement au thumbcache moderne, il enregistre souvent le nom de fichier d'origine et sa date de dernière modification, ce qui en fait un artefact très précieux.

Conteneur : un fichier composé OLE

Thumbs.db est un fichier composé Microsoft (le même conteneur que les anciens fichiers .doc), de signature D0 CF 11 E0 A1 B1 1A E1. Il contient des streams de stockage :

  • Catalog : l'index (Windows 98 → XP) ;
  • un stream par miniature, nommé d'après son index de catalogue avec les chiffres inversés (l'index 12 correspond au stream 21) ;
  • pour les variantes sur partages réseau depuis Vista, des streams nommés comme 256_<cache id>, sans Catalog.

Le stream Catalog

OffsetTailleChamp
02Longueur de l'en-tête (généralement 16)
22Version
44Nombre d'entrées
84Largeur de la miniature
124Hauteur de la miniature

Chaque entrée contient ensuite :

OffsetTailleChamp
04Longueur de l'entrée
44Index (→ nom du stream, chiffres inversés)
88FILETIME : date de dernière modification du fichier source
16…Nom de fichier, UTF-16LE, terminé par NUL

Le FILETIME correspond à la date de modification du fichier source au moment où la miniature a été générée. Ce n'est pas la date à laquelle le dossier a été consulté. Il permet de rattacher une miniature à une version précise d'un fichier, et il subsiste même lorsque le fichier lui-même a disparu.

Streams de miniatures : Type 2 et Type 1

La plupart des miniatures sous XP (« Type 2 ») consistent en un en-tête de 12 octets (longueur d'en-tête 0x0C, une constante, la taille des données) suivi d'un JPEG JFIF ordinaire. N'importe quel visualiseur peut les ouvrir.

Les miniatures Type 1, issues de Windows 98, ME, 2000 et de certains premiers systèmes XP, sont différentes. Après le premier en-tête vient un second (marqueur 1, une taille, la largeur et la hauteur), puis un fragment JPEG :

  • il possède des marqueurs SOI, SOF et SOS mais aucun DQT ni DHT : les tables de quantification et de Huffman sont absentes, car Windows utilisait toujours les tables standard de la spécification JPEG (annexe K) ;
  • ses quatre composantes sont nommées RGBA mais contiennent en réalité les canaux Y, M, C et un canal alpha ;
  • l'image est stockée à l'envers.

Pour visualiser une telle image, il faut réinsérer les tables standard, décoder, convertir R = 255 − C, G = 255 − M, B = 255 − Y, puis retourner verticalement. Thumbcache Parser fait cela automatiquement et marque le résultat Rebuilt. Les empreintes qu'il indique sont celles du stream d'origine, si bien que la preuve elle-même n'est jamais modifiée.

Où chercher

  • Dossiers utilisateurs, en particulier les dossiers d'images, sur les images de l'ère XP.
  • Supports amovibles : un dossier copié avec l'Explorateur emporte son Thumbs.db caché, y compris les miniatures de fichiers supprimés avant la copie.
  • Partages réseau : les clients depuis Vista y écrivent toujours un Thumbs.db par défaut. Parcourir un partage en vue miniatures peut laisser des traces sur le serveur, et non sur le client.
  • N'importe où sur un volume. Contrairement au thumbcache, il n'est pas lié à un profil : recherchez sur l'ensemble du système de fichiers (par exemple avec le préréglage « Thumbnail cache » de Disk Image Parser).

Recherchez également ehthumbs.db et ehthumbs_vista.db, le même format écrit par Windows Media Center.

Notes pour le rapport

Indiquez le chemin complet du Thumbs.db (il révèle quel dossier a été parcouru), le nom Catalog et le FILETIME de chaque miniature, le nom du stream et le hash des octets du stream. Pour les images Type 1, précisez que l'image affichée a été reconstruite à l'aide de tables JPEG standard.

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.