Skip to content

Investigation numérique du thumbcache : les preuves

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.

Publié le 6 min de lecture

Les caches de miniatures sont l'un des rares artefacts Windows à conserver le contenu d'un fichier plutôt que de simples métadonnées à son sujet. Images, images extraites de vidéos, premières pages de PDF et de documents Office : si l'Explorateur a généré un aperçu, une petite copie reste souvent dans le cache de miniatures de l'utilisateur longtemps après que l'original a été supprimé, effacé ou déplacé sur une clé USB jamais retrouvée. Dans les affaires à contenu d'image (CSAM, vol de données, harcèlement), c'est souvent la preuve la plus importante présente sur le disque.

Ce guide décrit ce que contiennent les caches, ce qu'ils prouvent ou non, et comment les extraire et les documenter. Vous pouvez suivre les explications avec Thumbcache Parser, qui ouvre dans le navigateur tous les fichiers mentionnés ici.

Où se trouvent les caches

Depuis Windows Vista, les caches sont propres à chaque utilisateur et centralisés :

%LOCALAPPDATA%\Microsoft\Windows\Explorer\
  thumbcache_16.db   thumbcache_32.db   thumbcache_48.db   thumbcache_96.db
  thumbcache_256.db  thumbcache_768.db  thumbcache_1280.db thumbcache_1920.db
  thumbcache_2560.db thumbcache_sr.db   thumbcache_wide.db thumbcache_exif.db
  thumbcache_wide_alternate.db  thumbcache_custom_stream.db  thumbcache_idx.db
  iconcache_16.db … iconcache_2560.db

L'ensemble exact dépend de la version de Windows (Vista et 7 n'ont que 32, 96, 256, 1024 et sr). Chaque taille est une base distincte, donc la même image peut apparaître plusieurs fois, et une taille peut encore la contenir après qu'une autre a été purgée. Collectez toujours toutes les bases, ainsi que thumbcache_idx.db et les fichiers iconcache_*.db.

Avant Vista, l'Explorateur écrivait un Thumbs.db caché dans chaque dossier affiché en miniatures. Les versions modernes de Windows écrivent toujours un Thumbs.db sur les partages réseau, sauf si une stratégie le désactive : les serveurs de fichiers méritent donc aussi d'être examinés. Consultez le guide Thumbs.db pour ce format.

Ce que prouve une miniature (et ce qu'elle ne prouve pas)

Une entrée de cache existe parce que le shell Windows a produit une miniature pour un fichier sur ce profil utilisateur. En pratique, cela se produit lorsque :

  • un dossier est affiché dans une vue en icônes suffisamment grande pour des miniatures ;
  • un fichier est sélectionné avec le volet d'aperçu ou de détails ouvert ;
  • une boîte de dialogue d'ouverture ou d'enregistrement affiche le dossier en vue miniatures ;
  • une application demande une miniature au shell via IThumbnailCache.

Une miniature est donc une preuve solide que le fichier a existé sur un volume parcouru par ce profil, et que son contenu correspondait à l'image. C'est en revanche une preuve faible que l'utilisateur a regardé ce fichier en particulier : il a pu simplement faire défiler un dossier de plusieurs centaines d'éléments. Indiquez-le clairement dans vos rapports ; les experts de la défense ne manqueront pas de le faire.

Deux autres limites :

  • Pas d'horodatage par entrée. Les entrées modernes du thumbcache ne portent aucune date. Utilisez les horodatages $MFT du fichier .db lui-même comme borne, et corrélez avec les jump lists, les fichiers LNK, les ShellBags et l'index de recherche.
  • Pas de nom de fichier. Les entrées sont indexées par un ID de cache 64 bits (voir plus bas). Seul le Catalog de l'ancien Thumbs.db stocke les noms d'origine.

Récupérer des miniatures supprimées

Supprimer le fichier source ne touche pas à sa miniature. L'Explorateur ne nettoie les caches que lorsque l'option Miniatures du Nettoyage de disque est exécutée, lorsque la maintenance automatique le décide, ou lors d'une reconstruction du cache. Même dans ce cas, une entrée libérée est généralement simplement laissée en place : la base suit un offset « disponible », et l'espace au-delà n'est réutilisé que paresseusement.

Chaque entrée commence par les quatre octets CMMM, suivis de sa taille, ce qui rend les anciennes entrées faciles à carver. Le parseur parcourt d'abord la chaîne d'entrées active, puis balaie par signature l'ensemble du fichier. Les correspondances situées après l'offset « disponible » de l'en-tête sont signalées comme Slack ; les autres (par exemple après une entrée corrompue) sont signalées comme Carved. Les deux apparaissent avec une bordure rouge dans la galerie et sont signalées dans chaque export.

Deux conseils pratiques :

  1. Vérifiez aussi les clichés instantanés (Volume Shadow Copies). D'anciennes copies des fichiers de cache peuvent contenir des miniatures purgées des fichiers actifs.
  2. Carvez l'espace non alloué à la recherche de CMMM. Lorsque la base de cache elle-même a été supprimée, ses entrées peuvent encore être carvées dans les clusters libres, puis chargées ici comme un bloc brut.

Relier une miniature au fichier d'origine

L'ID de cache de chaque entrée est la même valeur que celle stockée par Windows Search dans System_ThumbnailCacheId pour le fichier indexé. Si le fichier se trouvait dans un emplacement indexé, la base de recherche fournit son chemin et d'autres métadonnées :

  • Windows Vista à 10 : %ProgramData%\Microsoft\Search\Data\Applications\Windows\Windows.edb (ESE)
  • Windows 11 : Windows.db dans le même dossier (SQLite)

Collectez la base avec ses journaux de transactions. Une base ESE copiée depuis un système en fonctionnement est généralement « dirty » (incohérente) et nécessite esentutl /r ou /p sur une copie avant que les outils puissent l'ouvrir. Déposez-la dans le Thumbcache Parser avec les fichiers de cache : chaque miniature indexée est alors étiquetée avec son chemin, son nom, sa taille et sa date de modification d'origine, dans l'inspecteur comme dans les exports.

Caches d'icônes

Les fichiers iconcache_*.db utilisent le même format mais contiennent des icônes d'applications et de types de fichiers. Ils constituent une source discrète de contexte d'exécution de programmes. Un outil portable exécuté depuis une clé USB, ou un installeur supprimé par la suite, peut y laisser son icône.

Liste de collecte

  • Tous les thumbcache_*.db, thumbcache_idx.db et iconcache_*.db de chaque profil
  • Clichés instantanés (shadow copies) du même dossier
  • Windows.edb / Windows.db ainsi que les journaux (edb*.log, edb.chk)
  • $MFT pour les horodatages des fichiers de cache eux-mêmes
  • Thumbs.db des dossiers utilisateurs, des supports amovibles et des partages réseau

Les fichiers sont verrouillés tant que explorer.exe s'exécute : utilisez la target ThumbCache de KAPE, FTK Imager, un cliché instantané, ou extrayez-les d'une image avec Disk Image Parser et déposez directement son export ZIP dans le parseur.

Rédaction du rapport

Pour chaque miniature utilisée, notez le fichier source et son SHA-256, l'offset de l'entrée, l'ID de cache, si elle était allouée ou récupérée, ainsi que le MD5/SHA-256 des octets d'image extraits. Le ZIP de preuves du parseur regroupe les images, un CSV, un export JSON et un rapport HTML autonome contenant toutes ces informations. Il hache l'image telle qu'elle est stockée dans la base, si bien que quiconque réextrait le même offset obtiendra le même hash.

Articles liés

Comparatif de Thumbcache Viewer, Vinetto, des suites forensiques et du parsing dans le navigateur : plateformes, formats, récupération des entrées et noms.
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.
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.