Wprowadzenie: Zagadka przepełnionych stron
Wyobraź sobie, że kupujesz plakat, który jest zbyt duży, aby zmieścić się w ramkach, które masz w domu. Aby prawidłowo go wyświetlić, musiałbyś pociąć go na sekcje, aby zmieścił się w dostępnych ramach. Ta sama zasada dotyczy baz danych SQLite podczas obsługi dużych rekordów - dzielą je na części i przechowują na wielu stronach. W tym miejscu strony przepełnienia wejdź.
Strony przepełnienia przechowują dane, które nie mieszczą się na pojedynczej stronie bazy danych SQLite (zazwyczaj 4 096 bajtów). Te strony to połączone ze sobątworząc łańcuch, który analitycy śledczy muszą zrekonstruować, aby odzyskać kompletne dane. Jeśli analitycy nie podążą za strukturą przepełnienia, ryzykują odzyskanie niekompletne lub uszkodzone dowody.
W tym artykule zbadamy, jak działają strony przepełnienia, dlaczego mają one znaczenie w dochodzeniach kryminalistycznych i jak krok po kroku wyodrębnić pofragmentowane dane.
Czym są strony przepełnienia w SQLite?
Bazy danych SQLite przydzielają stały rozmiar strony (np, 4 096 bajtów). Jednakże, gdy rekord - taki jak obraz przechowywany jako plik BLOB (duży obiekt binarny)-przekracza ten rozmiar, nadmiar danych rozlewa się na strony przepełnienia.
Kluczowe wnioski:
Przepełnione strony zapobieganie dużym rekordom od zmonopolizowania jednej strony.
Są połączone w łańcuch, zaczynając od strony głównej.
✅ Analitycy kryminalistyczni musi zrekonstruować te łańcuchy, aby odzyskać kompletne dane.
Zrozumienie, jak działają strony przepełnienia, jest niezbędne w dochodzeniach kryminalistycznych.
Ogólny przegląd: Jak działają strony Overflow
Aby zilustrować koncepcję stron typu overflow, przyjrzyjmy się poniższym przykładom:
1. Fragmentaryczna reprezentacja obrazu

Ta wizualizacja przedstawia sposób przechowywania dużych obiektów BLOB, takich jak obrazy, w SQLite. Obraz jest podzielony na wiele sekcji, podobnie jak strona przepełnienia przechowuje pofragmentowane dane.
2. Dane przechowywane na jednej stronie

W tym przypadku obraz mieści się w całości na jednej stronie bazy danych, eliminując potrzebę stosowania stron przepełnienia.
3. Dane podzielone na wiele stron

Ten przykład ilustruje, w jaki sposób dane są przechowywane w sposób nieciągły, co wymaga analizy kryminalistycznej w celu ich prawidłowej rekonstrukcji.
4. Rekonstrukcja danych z przepełnionych stron

Śledzenie wskaźników stron przepełnienia pozwala analitykom śledczym na ponowne złożenie pofragmentowanych danych.
Kryminalistyczne znaczenie stron Overflow
Wiele aplikacje do przesyłania wiadomości, aplikacje mobilne i bazy danych przechowują zdjęcia profilowe użytkowników, dzienniki czatów i załączniki w SQLite. Gdy obrazy i dokumenty obejmują wiele stron, śledczy muszą zrozumieć struktury przepełnienia, aby prawidłowo wyodrębnić dane.
Wyzwania kryminalistyczne:
- Fragmentaryczne dane: Obiekty BLOB (takie jak obrazy) są często podzielone na wiele stron.
- Pobieranie oparte na wskaźnikach: Analitycy muszą śledzić wskaźniki stron przepełnienia SQLite, aby zrekonstruować pełny obraz lub plik.
- Kwestie związane z rzeźbieniem: Zwykłe wyszukiwanie nagłówka JPEG (FFD8FF) i stopki (FFD9) może się nie powieść, ponieważ mogą one istnieć na oddzielnych stronach.
Przykład ze świata rzeczywistego: Wyodrębnianie zdjęcia profilowego ze stron Overflow
Przejdźmy teraz krok po kroku przez kryminalistyczne odzyskiwanie obrazu przechowywanego w bazie danych SQLite.
Zlokalizuj BLOB w bazie danych

Korzystanie z Przeglądarka DB dla SQLiteAnalitycy kryminalistyczni identyfikują rekord zawierający zdjęcie profilowe w kontakty
tabela.
Określenie długości BLOB w systemie szesnastkowym

Korzystanie z HxDZa pomocą edytora szesnastkowego lokalizują nagłówek rekordu, który zawiera plik VARINT która określa długość BLOB.
Potwierdź rozmiar obrazu

Drugi VARINT w nagłówku rekordu określa rozmiar obrazu. W tym przypadku całkowity rozmiar wynosi 6 325 bajtówprzekraczając limit stron.
Podążaj za wskaźnikiem przepełnienia

W dolnej części strony głównej znajduje się wskaźnik czterobajtowy prowadzi do strona 4który zawiera następną część obrazu.
Sprawdź stronę przepełnienia

Pierwsze cztery bajty na stronie 4 wskazują, czy nastąpi kolejna strona przepełnienia. Ponieważ wartość wynosi 0x00000000
to jest ostatnia strona przepełnienia.
Wyodrębnianie i rekonstrukcja obrazu

Analitycy kryminalistyczni wyodrębniają 6,292 bajtów obrazu z obu stron i ręcznie go zrekonstruować.
📌Czterobajtowe wskaźniki NIE są częścią danych, które mają być zawarte w zapisanym obrazie
Weryfikacja odzyskanego obrazu

Wyodrębniony obraz jest teraz w pełni przywrócony i widoczny.
Przemyślenia końcowe: Znaczenie analizy strony przepełnienia
W dochodzeniach kryminalistycznych przeoczenie przepełnionych stron może prowadzić do utrata dowodów krytycznych. Zrozumienie mechanizmu przechowywania SQLite jest kluczowe dla dokładna ekstrakcja i rekonstrukcja danych.
Kluczowe informacje kryminalistyczne:
✔️ Zawsze sprawdzanie przepełnienia stronpodczas analizowania dużych rekordów.
✔️ Postępuj zgodnie z SQLite wskaźniki przepełnieniaostrożnie.
✔️ Simple techniki rzeźbienia w pilniku może nie działać z powodu nieciągłej pamięci masowej.
Czy analizowanie bazy danych czatów, listy kontaktów lub dzienniki aplikacjiSpecjaliści medycyny sądowej muszą być biegli w odzyskiwaniu pofragmentowanych danych.
💡 Czy napotkałeś pofragmentowane dane w analizie śledczej SQLite? Jak podchodzisz do analizy strony przepełnienia? Podziel się swoimi spostrzeżeniami poniżej!