Case study • bazy aplikacji
Baza SQLite i plik WAL w analizie komunikatora: dlaczego sam plik DB może nie wystarczyć
Studium metodyczne różnicy między bazą SQLite a jej stanem z WAL. Kontekst wiadomości, spójność kopii i granice rekonstrukcji.
Punkt wyjścia: stan bazy nie zawsze mieści się w jednym pliku
SQLite może działać w trybie WAL, w którym zatwierdzone zmiany pozostają w dodatkowym pliku przed przeniesieniem do głównej bazy. Oficjalna dokumentacja ostrzega, że oddzielenie bazy od jej WAL może spowodować utratę zatwierdzonych transakcji lub uszkodzenie stanu bazy. [1, sekcja 4]
Wniosek dla badania dowodowego dotyczy kompletności i spójności materiału. Plik o rozszerzeniu DB lub SQLITE nie powinien być automatycznie utożsamiany z pełnym stanem aplikacji. Równie ważne jest ustalenie, jakie pliki towarzyszące pozyskano i czy pochodzą z tego samego kontekstu. Sam podobny prefiks nazwy nie wystarcza do potwierdzenia tej relacji.
Scenariusz edukacyjny: wiadomość widoczna tylko w jednej kopii
Hipotetyczny materiał obejmuje kopię A zawierającą główny plik bazy oraz kopię B zawierającą bazę z plikiem WAL. Narzędzie pokazuje w B dodatkowy rekord wiadomości. Zleceniodawca pyta, czy rekord dopisano po wykonaniu kopii A. Taka interpretacja jest tylko jedną z możliwych hipotez; różnica może wynikać z innego zakresu materiału przekazanego do odczytu.
Proponowane badanie powinno najpierw uporządkować pochodzenie obu kopii i daty czynności. Następnie należy porównać ich skład, rozmiary, skróty oraz dokumentację pozyskania. Dopiero potem można oceniać rekord w odniesieniu do modelu danych aplikacji. Bez tych ustaleń liczba wiadomości w dwóch ekranach programu nie rozstrzyga historii zdarzeń.
Co mówi struktura WAL, a czego nie należy dopowiadać?
Dokumentacja formatu opisuje nagłówek, ramki zawierające zmienione strony bazy oraz warunki ich ważności. Odczyt aktualnego stanu wymaga uwzględnienia odpowiednich ramek i zatwierdzenia transakcji. Z tego powodu przypadkowy czytelny tekst znaleziony w pliku nie jest automatycznie równoważny aktywnemu rekordowi widocznemu dla aplikacji. [2, sekcje 4.1 i 4.5]
Autorska propozycja dokumentacji rozdziela trzy poziomy: fizyczne wystąpienie bajtów, rekonstrukcję struktury bazy i interpretację zachowania użytkownika. Przejście między nimi powinno być uzasadnione. Zapis obecny w strukturze nie identyfikuje samodzielnie osoby, która korzystała z konta, i nie przesądza o zamiarze tej osoby.
Dlaczego analizuje się kopię roboczą?
Dokumentacja MOBILedit zwraca uwagę, że otwieranie baz w zewnętrznych narzędziach może wpływać na ich stan, w tym wiązać się ze scalaniem WAL. Zaleca pracę na kopii danych pozyskanych, aby zachować punkt odniesienia dla weryfikacji. [3]
W proponowanym przebiegu analizy należy utrzymać rozdzielenie materiału otrzymanego i kopii roboczych. Każda operacja, która zmienia stan roboczy, powinna zostać opisana. Wtedy różnica między stanem początkowym a wynikiem odczytu jest elementem kontrolowanego procesu, a nie nieudokumentowanym zdarzeniem trudnym do wyjaśnienia po czasie.
Jak czytać wniosek z takiego badania?
Dobry wniosek identyfikuje źródło rekordu, wariant materiału, sposób odczytu i zakres pewności. Jeżeli znany jest tylko stan jednej kopii, trzeba unikać twierdzeń o całej historii aplikacji. Jeśli stwierdzono rozbieżność, należy wskazać potwierdzone przyczyny i hipotezy nadal otwarte. To nie jest instrukcja odzyskiwania każdej usuniętej wiadomości.
W sprawach dotyczących czasu zapisu pomocny jest artykuł o chronologii wiadomości, a przy ocenie eksportu — opracowanie o weryfikacji raportu MOBILedit. Przykład nie opisuje rzeczywistej sprawy klienta ani wyniku badań kancelarii.
Źródła i literatura
- SQLite. Write-Ahead Logging, sekcja 4: The WAL File. Oficjalna dokumentacja, bez paginacji; dostęp: 18.10.2026.
- SQLite. Database File Format, sekcje 4.1 i 4.5: WAL File Format; Reader Algorithm. Oficjalna dokumentacja, bez paginacji; dostęp: 18.10.2026.
- Compelson. Files & Acquired data folder structure, sekcja Impact of Changes in the Acquired Data Directory. Dokumentacja producenta, bez paginacji; dostęp: 18.10.2026.
Linki i przywołane miejsca sprawdzono 18 października 2026 r. Numer strony oznacza paginację publikacji; dokumentacja internetowa bez paginacji jest wskazana przez nazwę sekcji. Przykłady są scenariuszami edukacyjnymi, nie opisami spraw klientów.