Glossaire
FILETIME
L'horodatage 64 bits de Windows : le nombre d'intervalles de 100 nanosecondes écoulés depuis le 1601-01-01 00:00:00 UTC.
FILETIME est le format d'horodatage utilisé partout dans Windows : un entier non signé de 64 bits qui compte les intervalles de 100 nanosecondes écoulés depuis le 1er janvier 1601 à 00:00:00 UTC. Dans les artefacts de notification, ArrivalTime et ExpiryTime de la table Notification de wpndatabase.db, les heures de création et d'expiration de WNSPushChannel et les heures des vignettes et toasts d'appdb.dat sont toutes des valeurs FILETIME, stockées comme de simples entiers.
Pour en convertir une en temps Unix, soustrayez 116444736000000000 (le nombre d'intervalles de 100 nanosecondes entre 1601 et 1970) et divisez par 10 000 000. Le résultat est un nombre de secondes depuis le 1970-01-01 UTC ; le reste donne la précision inférieure à la seconde.
Pourquoi c'est important dans une investigation
Les valeurs FILETIME sont en UTC : les heures d'arrivée des notifications peuvent donc rejoindre directement une chronologie, à côté des entrées de la $MFT, des journaux d'événements et de l'historique du navigateur, sans hypothèse de fuseau horaire. Ce n'est pas le cas de tous les champs de la base : NotificationHandler.CreatedTime et ModifiedTime sont des dates textuelles dont le fuseau horaire n'est pas documenté. Rapportez-les telles qu'elles sont stockées.
Les valeurs dépassent aussi 2^53, le plus grand entier qu'un nombre JavaScript ou une cellule de tableur représente exactement. Les coller dans un tableur ou les faire transiter en JSON sous forme de nombres peut arrondir silencieusement les derniers chiffres. Conservez la valeur brute sous forme de texte ; le parseur l'exporte ainsi, à côté de l'heure convertie.
Exemple
from datetime import datetime, timedelta, timezone
ft = 134338537240000000 # ArrivalTime, tel que stocké
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
Termes associés
Le Windows Notification Parser convertit chaque FILETIME en UTC et conserve la valeur brute ; voir les tables et colonnes de wpndatabase.db expliquées pour savoir quelles colonnes l'utilisent.