Glossaire
Checkpoint WAL
L'opération SQLite qui recopie les pages validées du fichier -wal dans le fichier de base principal, après quoi le WAL peut être réinitialisé.
Un checkpoint est l'opération SQLite qui reporte le contenu du journal d'écriture anticipée dans le fichier de base principal. Pour chaque page modifiée par une transaction validée, il écrit la dernière version présente dans le fichier -wal par-dessus la page du fichier de base. Une fois toutes les trames recopiées, l'écrivain suivant peut recommencer le WAL depuis le début avec de nouvelles valeurs de sel, en écrasant les anciennes trames au fur et à mesure (sqlite.org).
SQLite exécute les checkpoints de lui-même. Par défaut, un checkpoint automatique a lieu lorsque le WAL dépasse environ 1 000 pages, et lorsque la dernière connexion à la base se ferme, SQLite effectue normalement un checkpoint puis supprime le fichier -wal. Les applications peuvent aussi en demander un explicitement, en mode passive, full, restart ou truncate.
Pourquoi c'est important dans une investigation
Avant un checkpoint, le fichier de base et le WAL contiennent ensemble plus d'historique que chacun séparément : le fichier garde les images de pages telles qu'elles étaient au dernier checkpoint, et le WAL les versions successives plus récentes. Les deux peuvent contenir des lignes de notification que l'état actuel n'a plus. Un checkpoint écrase les anciennes images de pages du fichier et, à terme, les anciennes trames WAL.
C'est pourquoi le simple fait d'ouvrir une copie de preuve de wpndatabase.db dans un navigateur SQLite est risqué : la fermeture peut déclencher un checkpoint et supprimer le WAL, faisant disparaître la copie distincte des notifications les plus récentes et les anciennes versions de pages utiles à la récupération. Calculez l'empreinte des originaux, travaillez sur des copies et utilisez un lecteur qui n'écrit jamais.
Exemple
Avant : wpndatabase.db (état au dernier checkpoint)
wpndatabase.db-wal (trames des pages 4, 5, 4, 9 ...)
Ouverture + fermeture dans un outil SQLite
Après : wpndatabase.db (pages 4, 5, 9 réécrites)
wpndatabase.db-wal (supprimé ou réinitialisé)
Le parseur fait l'inverse : il superpose en mémoire les trames WAL validées, signale les lignes présentes uniquement dans le WAL et laisse les deux fichiers intacts.
Termes associés
Utilisez le Windows Notification Parser, en lecture seule, et consultez le guide de collecte pour collecter la base et son WAL sans risque.