appdb.dat: der alte Benachrichtigungsspeicher von Windows
Was appdb.dat ist, welche Windows-Versionen sie nutzen, wie feste Chunks Toasts, Kacheln und Badges speichern und was sich forensisch daraus gewinnen lässt.
Kurz gesagt. Vor Windows 10 Build 1607 (und unter Windows 8.x) lagen Benachrichtigungen in appdb.dat, einer binären Datei fester Größe, die mit DNPW beginnt und im selben Notifications-Ordner liegt. Sie ist nicht dokumentiert. Das bekannte Layout der Version 3 umfasst 256 Chunks, jeweils mit einer Push-URI, einem Badge, fünf Kacheln und zwanzig Toasts samt FILETIME-Eingangs- und Ablaufzeiten und ihrem XML. Zu welcher App ein Chunk gehört, geht daraus nicht hervor.
Wer sie noch hat
Systeme, die von frühen Windows-10-Builds aktualisiert wurden, behalten mitunter eine appdb.dat neben wpndatabase.db, und Images älterer Rechner enthalten nur appdb.dat. Sichern Sie sie in jedem Fall: Das KAPE-Target WindowsNotificationsDB schließt sie bereits ein.
Aufbau
Yogesh Khatri beschrieb die Datei 2016 (swiftforensics): eine DNPW-Signatur, ein Header mit Zeitstempel und der nächsten Benachrichtigungs-ID, dann feste Chunks mit Push-URI, Badge-XML und Kacheldaten. Das Projekt Dissect veröffentlicht eine vollständige Strukturdefinition für Version 3, der der Parser dieser Website folgt:
| Teil | Inhalt |
|---|---|
| Chunk-Header (nur im ersten Chunk) | DNPW, Version, Zeitstempel, nächste Benachrichtigungs-ID |
| Chunk-Info | In-Use-Flag und Schreibindizes |
| Push-Deskriptor | Zwei FILETIME-Werte und die WNS-Push-URI |
| Badge | ID, Zeitstempel, Badge-XML |
| 5 Kachel-Deskriptoren + XML-Slots | ID, Ablauf- und Eingangs-FILETIME, Name, XML-Länge |
| 20 Toast-Deskriptoren + XML-Slots | ID, Ablauf- und Eingangs-FILETIME, zwei Namen, XML-Länge |
Jeder Chunk ist 0x23810 Byte groß und die Datei enthält 256 davon, sodass eine vollständige appdb.dat unabhängig vom Inhalt etwas über 37 MB groß ist.
Was Sie erhalten
Für jeden belegten Chunk: die Push-URI, den Badge-Wert sowie jede Kachel und jeden Toast mit Eingangs- und Ablaufzeit (FILETIME, UTC), einer ID, den im Deskriptor gespeicherten Namen und dem XML — demselben Toast-Schema wie in wpndatabase.db, sodass sich Textzeilen, Startargumente und Aktionen genauso lesen lassen.
Was Sie nicht erhalten
- Die App. Der Chunk nennt seine App nicht. Korrelieren Sie Push-URI, Namen und Inhalt mit anderen Artefakten.
- Gewissheit. Das Layout stammt aus Reverse Engineering. Version 1 (Windows 8) weicht ab und wird gemeldet, aber nicht geparst.
- Gelöschte Einträge, abgesehen von dem, was in ungenutzten Slots verbleibt: Es gibt keinen freien SQLite-Speicher zum Carving.
Der Windows Notification Parser liest Version 3 und kennzeichnet jedes Ergebnis daraus als Best Effort. Für aktuelle Systeme siehe den Leitfaden zu wpndatabase.db.