Glossaire
Freelist SQLite
La liste des pages entières que SQLite n'utilise plus et conserve pour réutilisation, souvent avec leur ancien contenu toujours en place.
La freelist est la liste des pages entières qui appartiennent au fichier de base SQLite mais ne contiennent plus aucune donnée active. Lorsque des suppressions vident une page, SQLite ne réduit pas le fichier (sauf si l'auto-vacuum est activé) : il inscrit la page dans la freelist et la réutilise la prochaine fois qu'il a besoin d'une page (format de fichier).
La liste est accessible depuis l'en-tête de base de 100 octets : l'entier big-endian de 4 octets à l'offset 32 est le numéro de la première page trunk de la freelist, et celui à l'offset 36 le nombre total de pages de la freelist. Chaque page trunk commence par le numéro de la page trunk suivante et un compteur, suivis d'un tableau de numéros de pages feuilles. Les pages feuilles n'ont pas de structure propre à la freelist : leur ancien contenu reste généralement en place.
Pourquoi c'est important dans une investigation
Une base de notifications change en permanence : des toasts arrivent, expirent et sont fermés. Lorsqu'une page entière de lignes Notification se vide, elle rejoint la freelist avec ses anciens enregistrements encore lisibles, sauf si secure_delete est activé. Une seule page de la freelist peut donc contenir plusieurs notifications supprimées à la fois. Elle n'est écrasée que lorsque SQLite réutilise la page, ou effacée lorsque la base est compactée (vacuum) : la récupération fonctionne donc mieux sur des fichiers collectés récemment. Comme pour toute donnée extraite, une ligne récupérée reste une preuve sans garantie.
Exemple
En-tête de base, offset 32 : 00 00 00 0C première page trunk = 12
offset 36 : 00 00 00 03 3 pages de freelist au total
Page 12 (trunk) : 00 00 00 00 pas d'autre page trunk
00 00 00 02 2 pages feuilles suivent
00 00 00 07 00 00 00 0F feuilles : 7, 15
Une notification extraite de la page 15 apparaît dans le parseur avec la source freelist page 15.
Termes associés
Le Windows Notification Parser analyse les pages de la freelist et signale ce qu'il y trouve ; lisez récupérer les notifications Windows supprimées pour savoir comment évaluer ces lignes.