Skip to content

Windows.edb / Windows.db / -wal

Windows Search Index Parser

Chaque fichier, dossier et page web indexé par Windows — chemins, tailles, propriétaires, horodatages et extraits de contenu, même pour les fichiers supprimés depuis — depuis Windows.db (Windows 11) ou Windows.edb (Windows 10). Analysé dans votre navigateur en WebAssembly — rien n'est envoyé.

Déposez Windows.db (+ -wal, Windows-gather.db) ou Windows.edb ici

Idéal : tout le dossier C:\ProgramData\Microsoft\Search\Data\Applications\Windows. Les dossiers et collectes ZIP (KAPE, Velociraptor) fonctionnent tels quels — Windows.db est associé à son -wal et à Windows-gather.db, les journaux de transactions sont reconnus et expliqués.

Bases synthétiques issues d'une intrusion fictive — aucune donnée réelle. Comment collecter ↓

100 % côté client : les bases sont analysées par WebAssembly dans votre navigateur et ne sont jamais envoyées.

Comment récupérer vos données

Depuis un PC allumé, une collecte de triage ou une image disque — environ deux minutes.

  1. CollecterCopiez le dossier de l’index Windows Search (commandes ci-dessous).
  2. Déposez-le iciLe dossier, les fichiers seuls ou le ZIP KAPE / Velociraptor, tels quels.
  3. Reste dans votre navigateur100 % côté client : les bases sont analysées par WebAssembly dans votre navigateur et ne sont jamais envoyées.

Windows 10 ou 11 allumé : ouvrez Windows PowerShell avec « Exécuter en tant qu’administrateur » et collez le bloc.

Crée un cliché instantané (Volume Shadow Copy) de C:, en copie tout le dossier de l’index — Windows.db et son -wal (ou Windows.edb et ses journaux) proviennent donc du même instant — puis supprime le cliché. Rien à installer.

PowerShell (admin)
New-Item -ItemType Directory -Force C:\triage | Out-Null
$id = (Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create -Arguments @{Volume='C:\'; Context='ClientAccessible'}).ShadowID
$sc = Get-CimInstance Win32_ShadowCopy | Where-Object ID -eq $id
cmd /c mklink /d C:\triage\vss "$($sc.DeviceObject)\"
robocopy C:\triage\vss\ProgramData\Microsoft\Search\Data\Applications\Windows C:\triage\WindowsSearch /E /B /COPY:DT /R:0 /W:0
cmd /c rmdir C:\triage\vss
$sc | Remove-CimInstance

Déposez ensuite le dossier C:\triage\WindowsSearch ici.

Pièges

  • Le service Windows Search garde les fichiers ouverts : une copie avec l’Explorateur ou copy échoue ou donne un fichier rempli de zéros. Passez par un cliché instantané, KAPE / Velociraptor ou une image.
  • Gardez Windows.db et Windows.db-wal du même instant. N’arrêtez pas WSearch et n’ouvrez pas l’original dans un outil SQLite avant : le WAL peut être intégré à la base et son contenu perdu.
  • Un Windows.edb copié sur un système en marche est en général en état « dirty shutdown » : il est analysé, mais les changements encore dans les fichiers MSS*.log n’y figurent pas.

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.