Skip to content

Glossar

SQLite-Freelist

Die Liste ganzer Datenbankseiten, die SQLite nicht mehr nutzt und zur Wiederverwendung vorhält, oft noch mit ihrem alten Inhalt.

Die Freelist ist die Liste ganzer Seiten, die zur SQLite-Datenbankdatei gehören, aber keine aktiven Daten mehr enthalten. Leeren Löschvorgänge eine Seite, verkleinert SQLite die Datei nicht (außer bei aktiviertem Auto-Vacuum), sondern trägt die Seite in die Freelist ein und verwendet sie wieder, sobald eine Seite gebraucht wird (Dateiformat).

Die Liste ist vom 100 Byte langen Datenbank-Header aus erreichbar: Die 4-Byte-Ganzzahl (Big-Endian) bei Offset 32 ist die Nummer der ersten Freelist-Trunk-Seite, die bei Offset 36 die Gesamtzahl der Freelist-Seiten. Jede Trunk-Seite beginnt mit der Nummer der nächsten Trunk-Seite und einem Zähler, gefolgt von einem Array mit Nummern von Blattseiten. Blattseiten tragen keine eigene Freelist-Struktur, ihr früherer Inhalt bleibt daher in der Regel erhalten.

Warum es für Ermittlungen wichtig ist

Eine Benachrichtigungsdatenbank ändert sich ständig: Toasts kommen an, laufen ab und werden geschlossen. Wird eine ganze Seite mit Notification-Zeilen geleert, wandert sie mitsamt ihren noch lesbaren alten Datensätzen in die Freelist, sofern secure_delete nicht aktiv ist. Eine einzige Freelist-Seite kann daher mehrere gelöschte Benachrichtigungen auf einmal enthalten. Überschrieben wird sie erst, wenn SQLite die Seite wiederverwendet, und gelöscht, wenn die Datenbank mit VACUUM neu aufgebaut wird. Die Wiederherstellung funktioniert deshalb am besten bei frisch gesicherten Dateien. Wie alle gecarvten Daten ist eine wiederhergestellte Zeile ein Beleg nach bestem Bemühen.

Beispiel

Datenbank-Header, Offset 32:  00 00 00 0C   erste Trunk-Seite = 12
                  Offset 36:  00 00 00 03   insgesamt 3 Freelist-Seiten
Seite 12 (Trunk):             00 00 00 00   keine weitere Trunk-Seite
                              00 00 00 02   2 Blattseiten folgen
                              00 00 00 07  00 00 00 0F   Blätter: 7, 15

Eine aus Seite 15 gecarvte Benachrichtigung erscheint im Parser mit der Quelle freelist page 15.

Verwandte Begriffe

Der Windows Notification Parser durchsucht Freelist-Seiten und kennzeichnet, was er findet; wie Sie diese Zeilen bewerten, erklärt gelöschte Windows-Benachrichtigungen wiederherstellen.