Skip to content

Analizadores de Windows.edb: SIDR, ESEDatabaseView y más

Comparativa justa de analizadores del índice de Windows Search: SIDR, WinSearchDBAnalyzer, ESEDatabaseView, esedbexport, sqlite3 y este analizador web.

Publicado el 7 min de lectura

En resumen. Para adquisición a escala de flota e informes estándar en Windows 10 y 11, usa SIDR (Stroz Friedberg / LevelBlue). Para recuperar registros borrados de Windows.edb, WinSearchDBAnalyzer. Para una mirada en bruto a cualquier tabla ESE, ESEDatabaseView (interfaz de Windows) o esedbexport de libesedb (línea de comandos multiplataforma). En Windows 11, el shell sqlite3 sobre una copia es tu verdad de referencia. Usa el Windows Search Index Parser cuando quieras cero instalación, cero subida, una fila pivotada por elemento en ambos formatos, diferencias basadas en el WAL y marcas de triaje. Su lector ESE solo se ha validado con datos sintéticos, así que contrástalo con alguno de los otros. Cuando los hallazgos importan, ejecuta dos herramientas y compara.

Ninguna herramienta lo hace todo, y el formato está tan poco documentado que dos analizadores pueden discrepar con datos reales. Lo que sigue es para qué está hecha cada herramienta, según su propia documentación y lo que he podido verificar, sin pruebas de rendimiento que no pueda reproducir.

Las herramientas

HerramientaFormatosInterfazPunto fuerteFuente
SIDRWindows.edb, Windows.dbLínea de comandos (Rust) + artefacto de VelociraptorTres informes estándar: archivos, historial de internet, historial de actividadstrozfriedberg/sidr
WinSearchDBAnalyzerWindows.edbInterfaz de WindowsRecupera registros borrados; puede extraer desde un sistema vivomoaistory/WinSearchDBAnalyzer
ESEDatabaseViewCualquier archivo ESEInterfaz de Windows + exportación por línea de comandosVisor de tablas genérico, muchos formatos de exportación, sin depender de esent.dllNirSoft
esedbexport (libesedb)Cualquier archivo ESELínea de comandos multiplataforma / biblioteca en CImplementación abierta y documentada del formato; exporta todas las tablaslibyal/libesedb
sqlite3 / DB Browser for SQLiteWindows.db, Windows-gather.dbLínea de comandos / interfazMotor SQLite de referencia: la verdad de referencia en Windows 11sqlite.org
Windows Search Index ParserWindows.edb, Windows.db (+ WAL, base gather)Navegador, WebAssembly, sin instalaciónElementos pivotados, marcas del WAL, comprobación cruzada con gather, triaje, todo en localeste sitio

SIDR

SIDR (Search Index Database Reporter) lo publicó Stroz Friedberg junto con la investigación de 2023 de Kulkarni y Paluch. Según su README, recorre un directorio buscando Windows.edb y Windows.db y escribe tres informes con el nombre del equipo: un File Report, un Internet History Report y un Activity History Report, en JSON o CSV. Incluye un artefacto de Velociraptor, velosidr.yaml, para ejecutarlo en los equipos. Licencia Apache 2.0.

sidr -f csv -o D:\case\reports D:\case\search

Recurre a él cuando procesas muchos equipos, quieres informes homogéneos entre casos o necesitas el historial de actividad y el de internet ya separados. Ten en cuenta: produce informes seleccionados en lugar de todas las propiedades en bruto, y como herramienta de línea de comandos da por hecho que la adquisición y la revisión se hacen en otro sitio.

WinSearchDBAnalyzer

Escrito por Jeonghyeon Kim (moaistory), descrito en su blog y publicado en GitHub con licencia MIT. Su README destaca la recuperación de registros borrados de Windows.edb, la extracción desde un sistema vivo, el análisis de archivos «sea cual sea su estado» y categorías como correo, títulos de OneNote, historial de internet e historial de actividad. Existen forks que lo retoman, entre ellos uno de Andrew Rathbun.

Recurre a él cuando necesitas registros que ya no están activos en la base ESE. Es justo el hueco que dejan abierto la mayoría de los analizadores, incluido este. Ten en cuenta: se dirige al formato ESE de Windows 10 y anteriores, no al Windows.db SQLite de Windows 11, y es una aplicación de Windows con interfaz gráfica.

ESEDatabaseView

El visor ESE genérico de NirSoft. Abre cualquier base ESE (Windows.edb, SRUDB.dat, WebCacheV01.dat y otras), permite recorrer y filtrar tablas y exportarlas a CSV, HTML, XML, JSON y otros formatos, desde la interfaz o la línea de comandos. NirSoft indica que no necesita esent.dll. Su documentación reconoce con franqueza que, en tablas con estructuras de datos complejas, algunos campos pueden mostrar valores incorrectos o vacíos.

Recurre a él cuando quieras ver SystemIndex_PropertyStore o las tablas gather en bruto, tal como están almacenadas, o comprobar una columna que otra herramienta muestra vacía. Ten en cuenta: conoce ESE, no Windows Search. No hay pivote, ni reconstrucción de rutas desde el árbol gather, ni interpretación de propiedades, ni soporte de Windows 11, ya que Windows.db es SQLite.

esedbexport (libesedb)

libesedb, de Joachim Metz, es una biblioteca abierta en C para archivos ESE, con las herramientas esedbinfo y esedbexport. Su documentación del formato es la referencia sobre la que se construyen la mayoría de los analizadores ESE, incluido este. El propio proyecto se declara experimental.

esedbexport -t D:\case\export Windows.edb

Recurre a él cuando quieras un volcado automatizable y multiplataforma de todas las tablas, o una segunda opinión sobre la propia capa ESE. Ten en cuenta: la salida es un archivo de texto por tabla y la interpretación corre de tu cuenta.

sqlite3 y DB Browser for SQLite

Para Windows.db, el motor SQLite oficial es la referencia. Unir SystemIndex_1_PropertyStore con su tabla de metadatos sobre una copia te da una verdad de referencia verificable. Las consultas están en análisis forense de Windows.db: SQLite y el WAL.

Ten en cuenta: trabaja solo sobre una copia. Un cliente SQLite normal puede consolidar el WAL al cerrar y destruir la comparación antes/después.

El Windows Search Index Parser

Lo que hace, según su propio README y su interfaz:

  • Lee Windows.db (con -wal y Windows-gather.db) y Windows.edb con sus propios lectores SQLite y ESE, compilados de Rust a WebAssembly, en un Web Worker. No se sube nada.
  • Pivota todas las propiedades de cada elemento en una fila, une las tablas gather y reconstruye las rutas de carpetas.
  • Marca los elementos solo en el WAL o modificados en el WAL; señala los elementos fuera de la tabla gather, los fragmentos de contenido, ejecutables, comprimidos, otras unidades, rutas de red, carpetas escribibles por el usuario y elementos indexados recientemente.
  • Acepta carpetas y ZIP de KAPE / Velociraptor tal cual; exporta a CSV (protegido contra inyección de fórmulas) y JSON.

Lo que no hace, dicho claramente:

  • Validación ESE: su lector de Windows.edb solo se ha validado con bases sintéticas. Por eso la interfaz lo advierte.
  • Esquema de Windows 11: la decodificación sigue la investigación pública; el DDL y los códigos de tipo de almacenamiento no están documentados.
  • Sin carving: no recupera registros borrados en páginas ESE libres, freelists de SQLite ni tramas WAL obsoletas (las entradas ESE «defunct» se cuentan).
  • Sin reproducción de MSS*.log; sin decodificación de los valores de SystemIndex_0A de Vista / 7; sin XPRESS9 / XPRESS10 / LZ4.
  • Sin línea de comandos ni automatización. Triaje guiado por una persona, no un pipeline.

Qué combinación para cada tarea

TareaPrimera herramientaContrastar con
Triaje rápido de un equipo, sin instalación, datos sensiblesWindows Search Index Parsersqlite3 (Win 11) o ESEDatabaseView / esedbexport (Win 10)
Muchos equipos, informes estándarSIDR (+ Velociraptor)Revisar un equipo con una segunda herramienta
Registros borrados en Windows.edbWinSearchDBAnalyzerRegistros activos en cualquier analizador
Comprobación en bruto de una tabla ESEESEDatabaseView o esedbexportEl otro
Preguntas sobre el WAL de Windows 11Windows Search Index Parser (solo en el WAL / modificado)sqlite3 sobre copias con y sin el WAL

Cuando los analizadores discrepan

Causas habituales, en el orden en que las reviso:

  1. Entrada distinta. Una herramienta recibió el WAL o la base ESE reproducida y la otra no. Ver la guía de dirty shutdown.
  2. Valores largos y compresión. Un fragmento presente en una herramienta y vacío en otra suele significar que una de ellas no siguió una referencia de valor largo o no decodificó un valor comprimido. Ver fundamentos de ESE.
  3. Columnas multivalor reducidas a su primer valor.
  4. Decodificación de fechas: orden de bytes y UTC frente a hora local.
  5. Selección de registros: registros «defunct» mostrados u ocultos; registros solo de gather incluidos o no.

Anota qué herramienta produjo cada hallazgo y cuál lo confirmó. Es lo que preguntará un revisor.

Artículos relacionados

Artículos relacionados