Skip to content

wpndatabase.db-walappdb.dat

Windows Notification Parser

Chaque toast reçu par un utilisateur — aperçus de discussions et de mails, alertes de sécurité, téléchargements terminés — depuis wpndatabase.db et son fichier -wal, plus les notifications supprimées récupérées dans l'espace libre. Analysé dans votre navigateur avec WebAssembly — rien n'est envoyé.

Déposez wpndatabase.db et son -wal, un dossier ou une collecte ZIP

Fonctionne avec le dossier Notifications d'un utilisateur, toute une arborescence Users, une collecte KAPE ou Velociraptor, ou un ZIP. appdb.dat (Windows 10 avant 1607) est lu aussi.

L'exemple est une base synthétique (compte fictif svc_backup sur FIN-WKS-07) avec une notification supprimée restée dans l'espace libre.

100 % côté client : les bases sont analysées par WebAssembly dans votre navigateur et ne sont jamais envoyées.

Comment récupérer vos données

Guide d'acquisition complet

Collectez wpndatabase.db avec son wpndatabase.db-wal dans le dossier Notifications de chaque utilisateur, puis déposez le résultat ici. Sur un poste Windows 10 ou 11 allumé, cela prend environ deux minutes.

  1. Collectez la base et son -wal
  2. Déposez le dossier ou le ZIP ici
  3. Analysé dans votre navigateur, jamais envoyé

Collez dans Windows PowerShell lancé en administrateur (lecteur système C:). La commande crée un cliché instantané pour que la base et son WAL datent du même instant, les copie pour chaque profil, puis supprime le cliché.

PowerShell · Admin
New-Item -ItemType Directory -Force -Path C:\triage | Out-Null
$sc = Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create -Arguments @{ Volume = 'C:\' }
$vss = Get-CimInstance -ClassName Win32_ShadowCopy -Filter "ID='$($sc.ShadowID)'"
cmd /c mklink /d C:\triage\vss "$($vss.DeviceObject)\"
robocopy C:\triage\vss\Users C:\triage\Users wpndatabase.db wpndatabase.db-wal appdb.dat /S /XJ /B /R:0 /W:0 /NP /NDL
cmd /c rmdir C:\triage\vss
$vss | Remove-CimInstance

Résultat : C:\triage\Users\<utilisateur>\AppData\Local\Microsoft\Windows\Notifications\ avec wpndatabase.db et wpndatabase.db-wal (appdb.dat sur les anciennes versions). Déposez ici le dossier C:\triage\Users (glissez-le ou utilisez Choisir un dossier).

Analyse sur une autre machine ? Regroupez tout dans un ZIP avec le tar.exe intégré à Windows 10 1803 et suivants (un ZIP créé avec Compress-Archive de PowerShell fonctionne aussi) :

PowerShell / cmd
tar -a -c -f C:\triage\notifications.zip -C C:\triage Users

Pièges

  • La base reste ouverte tant que l'utilisateur est connecté : une copie simple échoue ou produit un fichier rempli de zéros (signalé « commence par des zéros »). Utilisez la commande par cliché instantané, KAPE ou Velociraptor.
  • Prenez la base et son -wal au même moment : sans le WAL les dernières notifications manquent, et un WAL d'une autre base est ignoré.
  • N'ouvrez pas la base active dans un outil SQLite avant de la copier : cela peut consolider le WAL dans la base et modifier ce que vous collectez.
  • Les notifications expirent (ExpiryTime, souvent quelques jours) et celles qui sont fermées sont supprimées : collectez tôt. Les lignes supprimées peuvent survivre dans l'espace libre jusqu'à ce que SQLite le réutilise.

Qu'est-ce que wpndatabase.db ?

wpndatabase.db est la base, propre à chaque utilisateur, de la plateforme de notifications push de Windows (WPN). Chaque toast, mise à jour de vignette et badge envoyé par une application — via les Windows Push Notification Services (WNS) ou localement — y est stocké avec l'application émettrice, l'heure d'arrivée et l'heure d'expiration. C'est une base SQLite 3 en mode journal WAL : les changements récents restent dans wpndatabase.db-wal jusqu'à ce que Windows les consolide.

La notification elle-même est conservée en XML : les lignes de texte vues par l'utilisateur, les références d'images, les boutons et zones de réponse, et les arguments de lancement qui ouvrent l'application au clic. C'est pourquoi le fichier conserve des aperçus de discussions et de mails, des alertes de sécurité et des téléchargements — parfois après la disparition du message ou du fichier d'origine.

Où est-elle stockée ?

  • C:\Users\<utilisateur>\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db, avec -wal et -shm à côté (Windows 10 1607 et suivants, Windows 11).
  • appdb.dat dans le même dossier sous Windows 10 avant la version 1607 et sous Windows 8.x : un fichier binaire de taille fixe, qui commence par DNPW.
  • Tables principales : Notification (XML du contenu, Type, Tag, Group, ArrivalTime, ExpiryTime en FILETIME), NotificationHandler (PrimaryId de l'application, HandlerType, CreatedTime), HandlerAssets, HandlerSettings, WNSPushChannel (URI des canaux) et Metadata.

Ce qu'elle apprend à l'enquêteur

  • Contenu des messages : aperçus des applications de discussion et de messagerie avec l'expéditeur et les premières lignes, souvent encore présents après la suppression de la conversation.
  • Événements de sécurité : toasts de l'antivirus et de la sécurité Windows (menace détectée, mise en quarantaine, protection désactivée) avec les noms de fichiers cités.
  • Activité de l'utilisateur : téléchargements terminés, invites de lecteur amovible, rappels d'agenda — chacun avec une heure d'arrivée précise.
  • Quelles applications peuvent notifier l'utilisateur : la liste des gestionnaires et leurs dates de création, y compris les applications enregistrées pendant un incident, et les URI de leurs canaux push WNS.
  • Notifications supprimées : les lignes fermées ou expirées peuvent survivre dans l'espace libre SQLite et d'anciennes images de page ; cet outil les récupère et les signale clairement.

Limites

  • Seules les notifications que l'application a choisi d'envoyer, et seulement jusqu'à leur expiration ou leur fermeture : une absence ne prouve rien.
  • Les CreatedTime / ModifiedTime des gestionnaires sont stockés en texte sans fuseau horaire documenté ; les heures des notifications (FILETIME) sont en UTC.
  • La récupération des lignes supprimées se fait au mieux : l'espace est réutilisé avec le temps, et un enregistrement coupé par une limite de page est marqué partiel.
  • appdb.dat n'est pas documenté ; cet outil lit la structure de la version 3 publiée par le projet Dissect et ne nomme pas l'application de chaque bloc.

Comment l'acquérir

  • Copiez wpndatabase.db et wpndatabase.db-wal ensemble, depuis un cliché instantané ou avec KAPE (cible WindowsNotificationsDB) ou Velociraptor (Windows.Triage.Targets).
  • Copiez chaque profil : chaque utilisateur a sa propre base.
  • Calculez l'empreinte des fichiers et conservez les originaux : n'ouvrez jamais la base active dans un outil SQLite, qui pourrait la consolider et la réécrire.

FAQ

Quelque chose est-il envoyé ?

Non. Le parseur est écrit en Rust, compilé en WebAssembly, et s'exécute dans un Web Worker de votre navigateur. Les fichiers ne quittent jamais votre machine.

Ai-je besoin du fichier -wal ?

Oui, dès qu'il existe. Windows écrit d'abord les nouvelles notifications dans wpndatabase.db-wal ; sans lui, les plus récentes manquent généralement. L'outil prévient quand une base est déposée sans son WAL.

Peut-il récupérer des notifications supprimées ?

Souvent. SQLite laisse les enregistrements supprimés en place jusqu'à la réutilisation de l'espace. Le parseur analyse l'espace libre, la liste des pages libres et les anciennes images de page de la base et du WAL, et affiche ce qu'il trouve comme « Récupérée », avec sa provenance.

Quelles versions de Windows sont prises en charge ?

wpndatabase.db à partir de Windows 10 1607 et Windows 11, et appdb.dat (version 3) des versions antérieures de Windows 10. La structure d'appdb.dat est issue de rétro-ingénierie : les résultats sont signalés comme « au mieux ».

Les heures sont-elles en UTC ?

Les heures d'arrivée et d'expiration sont des valeurs FILETIME de Windows, donc en UTC. Passez en heure locale dans la barre d'outils. Les dates de création des gestionnaires sont stockées en texte sans fuseau documenté et affichées telles quelles.

Ce qu'est appdb.dat, les versions de Windows concernées, comment ses blocs fixes stockent toasts, vignettes et badges, et ce qu'on peut en tirer.

Cas fictif : l'apport d'une base de notifications à la chronologie d'une intrusion — téléchargement, alerte antivirus, nouvelle app, message supprimé.

Pas à pas : ouvrir la base de notifications Windows et son -wal dans un parseur web gratuit, trier, récupérer les toasts supprimés et exporter.