Skip to content

Glossaire

wpndatabase.db

La base SQLite propre à chaque utilisateur où Windows 10 (1607+) et Windows 11 stockent les notifications des applications, avec contenu, émetteur et heures.

wpndatabase.db est la base SQLite propre à chaque utilisateur de la plateforme Windows Push Notification, sous Windows 10 (build 1607 et suivantes) et Windows 11. Elle stocke les toasts, mises à jour de vignette et badges que les applications envoient à l'utilisateur, avec l'application émettrice de chacun et ses heures d'arrivée et d'expiration. Elle a remplacé le fichier binaire appdb.dat et se trouve dans le même dossier :

C:\Users\<user>\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db
                                                             wpndatabase.db-wal
                                                             wpndatabase.db-shm

Les tables principales sont Notification (une ligne par notification : Type, Payload, Tag, Group, ArrivalTime, ExpiryTime), NotificationHandler (une ligne par application capable de notifier), HandlerAssets et HandlerSettings (détails clé / valeur), WNSPushChannel (URI des canaux push) et Metadata.

Pourquoi c'est important dans une investigation

La base contient du contenu écrit par Windows pour le compte d'autres applications : aperçus de messageries et de courriels, alertes antivirus citant des fichiers, avis de téléchargement et invites de périphériques, chacun avec une heure d'arrivée FILETIME en UTC. Elle survit souvent à ce qu'elle annonçait. Elle liste aussi chaque gestionnaire de notifications enregistré, y compris celui apparu pendant un incident.

Trois points pratiques : la base fonctionne en mode WAL, donc les notifications les plus récentes ne se trouvent souvent que dans wpndatabase.db-wal et les deux fichiers doivent être collectés ensemble ; le fichier est ouvert tant que l'utilisateur est connecté, donc une collecte à chaud exige un cliché instantané (shadow copy) ou un outil de triage comme la cible KAPE WindowsNotificationsDB ; enfin, les notifications fermées ou expirées sont supprimées mais peuvent souvent être récupérées dans l'espace libre.

Exemple

SELECT n.Type, n.ArrivalTime, h.PrimaryId, n.Payload
FROM Notification n
JOIN NotificationHandler h ON n.HandlerId = h.RecordId
ORDER BY n.ArrivalTime;

N'exécutez ce type de requête que sur une copie : ouvrir le fichier dans un outil SQLite peut déclencher un checkpoint du WAL.

Termes associés

Déposez la base et son WAL dans le Windows Notification Parser, et commencez par le guide wpndatabase.db.