Qu'est-ce que l'index Windows Search ?
Windows Search indexe les fichiers, dossiers, e-mails et l'historique de navigation pour que le menu Démarrer et l'Explorateur les retrouvent instantanément. Pour chaque élément, il conserve des dizaines de propriétés — chemin complet, taille, propriétaire, dates de création / modification / accès, date d'indexation — et, pour les documents texte, un extrait de leur contenu (System.Search.AutoSummary).
L'index n'est pas nettoyé en temps réel : les éléments supprimés du disque y restent souvent, avec leurs métadonnées et leur extrait de contenu, jusqu'à ce que l'indexeur rattrape son retard. C'est l'un des rares endroits où survivent des traces de fichiers supprimés — et une partie de leur contenu.
Où il est stocké
- Windows 11 (22H2 et suivants) : C:\ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.db — SQLite, avec Windows.db-wal — plus Windows-gather.db, la liste d'exploration du collecteur. Le magasin de propriétés est normalisé : SystemIndex_1_PropertyStore contient une ligne par (WorkId, ColumnId, Value) et SystemIndex_1_PropertyStore_Metadata associe ColumnId aux noms de propriétés comme System.ItemPathDisplay.
- Windows 10 et antérieurs : le même dossier contient Windows.edb, une base ESE (JET Blue). SystemIndex_PropertyStore (Windows 8 et suivants) ou SystemIndex_0A (Vista / 7) contient une ligne large par élément, avec des colonnes nommées comme 4447-System_ItemPathDisplay ; SystemIndex_Gthr et SystemIndex_GthrPth contiennent les enregistrements du collecteur et l'arborescence des dossiers.
- Windows Search est un service système : un seul index couvre les emplacements indexés de tous les utilisateurs de la machine. Les fichiers MSS*.log, *.jrs et MSS.chk à côté de Windows.edb sont ses journaux de transactions.
Pourquoi c'est important dans une enquête
- Des fichiers qui n'existent plus : chemins, tailles, propriétaires et horodatages d'éléments supprimés. Les éléments présents dans le magasin de propriétés mais absents de la table gather sont signalés — ils ont peut-être été supprimés.
- Les extraits de contenu (System.Search.AutoSummary) : une partie du texte de documents, notes et scripts — y compris des identifiants qu'un attaquant a enregistrés puis supprimés.
- Les lecteurs amovibles et partages réseau indexés, et les éléments d'historique de navigation / d'activité (URL, titres).
- L'heure de collecte (System.Search.GatherTime) indique quand l'indexeur a traité l'élément : un fichier indexé peu avant l'acquisition a été créé ou modifié récemment.
- Sous Windows 11, le fichier -wal contient les dernières transactions d'indexation : les éléments présents uniquement dans le WAL, ou modifiés dans le WAL, sont marqués.
Limites
- La prise en charge de Windows.edb (ESE) n'est validée que sur des bases synthétiques : le lecteur suit la documentation publique du format (libesedb, code source ESE de Microsoft) mais n'a pas encore été vérifié sur de vrais fichiers Windows.edb. Recoupez les constats importants avec un second outil.
- Pas encore pris en charge : les valeurs ESE compressées en XPRESS9 / XPRESS10 / LZ4, l'encodage des valeurs de SystemIndex_0A de Windows Vista / 7, le rejeu des journaux MSS*.log d'une base en dirty shutdown, et la récupération d'enregistrements supprimés dans les pages libres ESE ou SQLite (les entrées supprimées encore marquées dans les pages ESE sont comptées, pas affichées).
- Seuls les emplacements indexés sont couverts (par défaut les profils utilisateurs et le menu Démarrer, plus tout emplacement ajouté à l'index) ; l'index peut être désactivé, reconstruit ou purgé.
- Les horodatages sont des FILETIME (UTC). Les propriétés varient selon le type de fichier et la version de Windows : toutes les propriétés brutes sont donc aussi listées.
- La structure et l'encodage des valeurs de Windows 11 proviennent de recherches publiques : Microsoft ne documente pas le schéma exact.
Comment récupérer les fichiers
- Collectez tout le dossier C:\ProgramData\Microsoft\Search\Data\Applications\Windows avec KAPE, Velociraptor ou depuis une image disque, puis déposez le dossier ou le ZIP tel quel.
- Sur un système actif, les fichiers sont verrouillés par le service WSearch : copiez-les depuis un instantané VSS ou avec un outil de copie brute. Sous Windows 11, copiez Windows.db et Windows.db-wal au même moment (un WAL qui ne correspond pas est détecté et ignoré).
- Un Windows.edb copié depuis un système en fonctionnement est généralement en état dirty shutdown. Il est analysé quand même ; pour une copie cohérente, rejouez les journaux avec esentutl /r MSS sur une copie du dossier — jamais sur la preuve originale.
FAQ
Ma base est-elle envoyée quelque part ?
Non. Le parseur — y compris ses lecteurs SQLite et ESE — est écrit en Rust, compilé en WebAssembly et s'exécute dans un Web Worker de votre navigateur. Il n'existe aucun point d'envoi.
Lit-il le Windows.edb de Windows 10 ?
Oui, avec son propre lecteur ESE en lecture seule (catalogue, arbres B+, colonnes fixes / variables / étiquetées, valeurs longues, compression 7 bits et XPRESS). Il n'a été validé que sur des bases synthétiques pour l'instant : considérez ses résultats comme des pistes et confirmez les constats clés avec un autre outil.
Peut-il montrer des fichiers supprimés ?
Il montre les éléments encore présents dans l'index après la suppression du fichier — souvent avec la taille, le propriétaire, les horodatages et un extrait de contenu — et signale les éléments absents de la table gather. La récupération d'enregistrements déjà retirés de la base (pages libres) est prévue.
Pourquoi ajouter Windows-gather.db et le fichier -wal ?
Sous Windows 11, Windows.db-wal contient le travail d'indexation le plus récent, et Windows-gather.db liste ce que le collecteur a exploré. Avec les deux, l'outil marque les éléments présents uniquement dans le WAL et repère ceux présents dans une table mais pas dans l'autre.
Quelle différence avec SIDR ou esedbexport ?
Il couvre les mêmes tables, mais fonctionne dans le navigateur sans installation, regroupe toutes les propriétés de chaque élément sur une ligne, applique lui-même le WAL et signale les candidats supprimés, les extraits de contenu, les exécutables et les chemins sur lecteurs amovibles.