Skip to content

Glosario

FILETIME

Marca de tiempo de 64 bits de Windows: el número de intervalos de 100 nanosegundos transcurridos desde el 1601-01-01 00:00:00 UTC.

FILETIME es el formato de marca de tiempo que se usa en todo Windows: un entero sin signo de 64 bits que cuenta intervalos de 100 nanosegundos desde el 1 de enero de 1601 a las 00:00:00 UTC. En los artefactos de notificaciones, ArrivalTime y ExpiryTime de la tabla Notification de wpndatabase.db, las horas de creación y caducidad de WNSPushChannel y las horas de iconos y toasts de appdb.dat son valores FILETIME, guardados como enteros sin más.

Para convertir uno a tiempo Unix, resta 116444736000000000 (el número de intervalos de 100 nanosegundos entre 1601 y 1970) y divide entre 10.000.000. El resultado son segundos desde el 1970-01-01 UTC; el resto aporta la precisión inferior al segundo.

Por qué importa en una investigación

Los valores FILETIME están en UTC, así que las horas de llegada de las notificaciones pueden ir directamente a una línea de tiempo, junto a las entradas de la $MFT, los registros de eventos y el historial del navegador, sin suponer ninguna zona horaria. No ocurre lo mismo con todos los campos de la base: NotificationHandler.CreatedTime y ModifiedTime son fechas de texto cuya zona horaria no está documentada, así que infórmalas tal como están guardadas.

Además, los valores superan 2^53, el mayor entero que un número de JavaScript o una celda de hoja de cálculo representan con exactitud. Pegarlos en una hoja de cálculo o pasarlos por JSON como números puede redondear en silencio las últimas cifras. Conserva el valor en bruto como texto; el parser lo exporta así, junto a la hora convertida.

Ejemplo

from datetime import datetime, timedelta, timezone

ft = 134338537240000000          # ArrivalTime, tal como está guardado
unix = (ft - 116444736000000000) / 10_000_000
print(unix)                      # 1789380124.0
print(datetime(1601, 1, 1, tzinfo=timezone.utc) + timedelta(microseconds=ft // 10))
# 2026-09-14 10:02:04+00:00

Términos relacionados

El Windows Notification Parser convierte cada FILETIME a UTC y conserva el valor en bruto; consulta wpndatabase.db: tablas y columnas explicadas para ver qué columnas lo usan.