Skip to content

Windows.edb / Windows.db / -wal

Windows Search Index Parser

Cada archivo, carpeta y página web que Windows indexó — rutas, tamaños, propietarios, marcas de tiempo y fragmentos de contenido, incluso de archivos eliminados después — desde Windows.db (Windows 11) o Windows.edb (Windows 10). Analizado en tu navegador con WebAssembly — no se sube nada.

Suelta aquí Windows.db (+ -wal, Windows-gather.db) o Windows.edb

Lo mejor: toda la carpeta C:\ProgramData\Microsoft\Search\Data\Applications\Windows. Las carpetas y colecciones ZIP (KAPE, Velociraptor) funcionan tal cual — Windows.db se empareja con su -wal y con Windows-gather.db, y los registros de transacciones se reconocen y explican.

Bases sintéticas de una intrusión ficticia — ningún dato real. Cómo recopilar ↓

100 % en el cliente: las bases se analizan con WebAssembly en tu navegador y nunca se suben.

Cómo obtener tus datos

Desde un PC encendido, una colección de triaje o una imagen de disco: unos dos minutos.

  1. RecopilarCopia la carpeta del índice de Windows Search (comandos abajo).
  2. Suéltala aquíLa carpeta, los archivos sueltos o el ZIP de KAPE / Velociraptor, tal cual.
  3. Se queda en tu navegador100 % en el cliente: las bases se analizan con WebAssembly en tu navegador y nunca se suben.

Windows 10 u 11 encendido: abre Windows PowerShell con «Ejecutar como administrador» y pega el bloque.

Crea una instantánea (Volume Shadow Copy) de C:, copia desde ella toda la carpeta del índice —así Windows.db y su -wal (o Windows.edb y sus registros) son del mismo instante— y después elimina la instantánea. Sin instalar nada.

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

Después suelta aquí la carpeta C:\triage\WindowsSearch.

Trampas

  • El servicio Windows Search mantiene los archivos abiertos: una copia con el Explorador o copy falla o da un archivo lleno de ceros. Usa una instantánea, KAPE / Velociraptor o una imagen.
  • Conserva Windows.db y Windows.db-wal del mismo momento. No detengas WSearch ni abras el original en una herramienta SQLite antes: el WAL puede integrarse en la base y perderse lo que contenía.
  • Un Windows.edb copiado de un sistema en marcha suele estar en estado «dirty shutdown»: se analiza, pero no incluye los cambios que siguen en los archivos MSS*.log.

¿Qué es el índice de Windows Search?

Windows Search indexa archivos, carpetas, correos y el historial de navegación para que el menú Inicio y el Explorador los encuentren al instante. Para cada elemento guarda decenas de propiedades — ruta completa, tamaño, propietario, fechas de creación / modificación / acceso, cuándo se indexó — y, para documentos de texto, un extracto de su contenido (System.Search.AutoSummary).

El índice no se limpia en tiempo real: los elementos eliminados del disco suelen permanecer en él, con sus metadatos y su fragmento de contenido, hasta que el indexador se pone al día. Es uno de los pocos lugares donde sobreviven rastros de archivos eliminados — y parte de su contenido.

Dónde se almacena

  • Windows 11 (22H2 y posteriores): C:\ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.db — SQLite, con Windows.db-wal — más Windows-gather.db, la lista de rastreo del recopilador. El almacén de propiedades está normalizado: SystemIndex_1_PropertyStore tiene una fila por (WorkId, ColumnId, Value) y SystemIndex_1_PropertyStore_Metadata asocia ColumnId con nombres de propiedad como System.ItemPathDisplay.
  • Windows 10 y anteriores: la misma carpeta contiene Windows.edb, una base ESE (JET Blue). SystemIndex_PropertyStore (Windows 8 y posteriores) o SystemIndex_0A (Vista / 7) tiene una fila ancha por elemento, con columnas llamadas como 4447-System_ItemPathDisplay; SystemIndex_Gthr y SystemIndex_GthrPth contienen los registros del recopilador y el árbol de carpetas.
  • Windows Search es un servicio del sistema: un único índice cubre las ubicaciones indexadas de todos los usuarios del equipo. Los archivos MSS*.log, *.jrs y MSS.chk junto a Windows.edb son sus registros de transacciones.

Por qué importa en una investigación

  • Archivos que ya no existen: rutas, tamaños, propietarios y marcas de tiempo de elementos eliminados. Los elementos presentes en el almacén de propiedades pero ausentes de la tabla gather se señalan — pueden haber sido eliminados.
  • Fragmentos de contenido (System.Search.AutoSummary): parte del texto de documentos, notas y scripts — incluidas credenciales que un atacante guardó y luego borró.
  • Unidades extraíbles y recursos de red indexados, y elementos del historial de navegación / actividad (URL, títulos).
  • La hora de recopilación (System.Search.GatherTime) indica cuándo el indexador procesó el elemento: un archivo indexado poco antes de la adquisición se creó o modificó recientemente.
  • En Windows 11, el archivo -wal contiene las últimas transacciones de indexación: se marcan los elementos que solo están en el WAL o que cambiaron en él.

Limitaciones

  • La compatibilidad con Windows.edb (ESE) solo está validada con bases sintéticas: el lector sigue la documentación pública del formato (libesedb, código fuente de ESE de Microsoft) pero aún no se ha comprobado con archivos Windows.edb reales. Contrasta los hallazgos importantes con una segunda herramienta.
  • Aún no compatible: valores ESE comprimidos con XPRESS9 / XPRESS10 / LZ4, la codificación de valores de SystemIndex_0A de Windows Vista / 7, la reproducción de los registros MSS*.log de una base en dirty shutdown y la recuperación de registros eliminados en páginas libres de ESE o SQLite (las entradas eliminadas aún marcadas en páginas ESE se cuentan, no se muestran).
  • Solo se cubren las ubicaciones indexadas (por defecto los perfiles de usuario y el menú Inicio, más cualquier ubicación añadida al índice); el índice puede estar desactivado, reconstruido o purgado.
  • Las marcas de tiempo son FILETIME (UTC). Las propiedades varían según el tipo de archivo y la versión de Windows, así que también se listan todas las propiedades en bruto.
  • La estructura y la codificación de valores de Windows 11 provienen de investigaciones públicas: Microsoft no documenta el esquema exacto.

Cómo obtener los archivos

  • Recoge toda la carpeta C:\ProgramData\Microsoft\Search\Data\Applications\Windows con KAPE, Velociraptor o desde una imagen de disco, y suelta la carpeta o el ZIP tal cual.
  • En un sistema en marcha, el servicio WSearch bloquea los archivos: cópialos desde una instantánea VSS o con una herramienta de copia en bruto. En Windows 11, copia Windows.db y Windows.db-wal a la vez (un WAL que no corresponde se detecta y se ignora).
  • Un Windows.edb copiado de un sistema en marcha suele estar en estado dirty shutdown. Se analiza igualmente; para una copia coherente, reproduce los registros con esentutl /r MSS sobre una copia de la carpeta — nunca sobre la evidencia original.

Preguntas frecuentes

¿Se sube mi base a algún sitio?

No. El analizador — incluidos sus lectores SQLite y ESE — está escrito en Rust, compilado a WebAssembly y se ejecuta en un Web Worker de tu navegador. No existe ningún punto de subida.

¿Lee el Windows.edb de Windows 10?

Sí, con su propio lector ESE de solo lectura (catálogo, árboles B+, columnas fijas / variables / etiquetadas, valores largos, compresión de 7 bits y XPRESS). Por ahora solo se ha validado con bases sintéticas, así que trata sus resultados como pistas y confirma los hallazgos clave con otra herramienta.

¿Puede mostrar archivos eliminados?

Muestra los elementos que siguen en el índice después de eliminar el archivo — a menudo con tamaño, propietario, marcas de tiempo y un fragmento de contenido — y señala los elementos ausentes de la tabla gather. La recuperación de registros ya retirados de la base (páginas libres) está prevista.

¿Por qué añadir Windows-gather.db y el archivo -wal?

En Windows 11, Windows.db-wal contiene el trabajo de indexación más reciente y Windows-gather.db lista lo que rastreó el recopilador. Con ambos, la herramienta marca los elementos que solo están en el WAL y detecta los que están en una tabla pero no en la otra.

¿En qué se diferencia de SIDR o esedbexport?

Cubre las mismas tablas, pero funciona en el navegador sin instalación, reúne todas las propiedades de cada elemento en una fila, aplica el WAL por sí mismo y señala candidatos eliminados, fragmentos de contenido, ejecutables y rutas en unidades extraíbles.