Inleiding: De puzzel van overloop pagina's
Stel je voor dat je een poster koopt die te groot is voor de lijsten die je thuis hebt. Om hem goed weer te geven, moet je hem in stukken knippen zodat hij binnen de beschikbare kaders past. Hetzelfde principe is van toepassing op SQLite databases bij het verwerken van grote records-ze breken ze op in delen en slaan ze op over meerdere pagina's. Dit is waar overlooppagina's binnenkomen.
Overflow pagina's slaan gegevens op die niet in een enkele SQLite databasepagina passen (meestal 4.096 bytes). Deze pagina's zijn met elkaar verbondenen vormen een keten die forensisch analisten moeten reconstrueren om volledige gegevens te herstellen. Als analisten de overloopstructuur niet volgen, lopen ze het risico dat ze onvolledig of beschadigd bewijs.
In dit artikel zullen we onderzoeken hoe overflow pages werken, waarom ze belangrijk zijn in forensisch onderzoek en hoe je stap voor stap gefragmenteerde gegevens kunt extraheren.
Wat zijn overlooppagina's in SQLite?
SQLite databases wijzen een vaste paginagrootte toe (bijv, 4.096 bytes). Echter, wanneer een record, zoals een afbeelding opgeslagen als een BLOB (Binair Groot Object)-deze grootte overschrijdt, de overtollige gegevens komen terecht op overlooppagina's.
Belangrijkste opmerkingen:
Overlooppagina's grote records voorkomen van het monopoliseren van één pagina.
Ze zijn verbonden in een kettingvanaf de hoofdpagina.
✅ Forensisch analisten moeten deze ketens reconstrueren om volledige gegevens te verkrijgen.
Begrijpen hoe overflowpagina's werken is essentieel voor forensisch onderzoek.
Overzicht op hoog niveau: Hoe overlooppagina's werken
Laten we de volgende voorbeelden bekijken om het concept van overflowpagina's te illustreren:
1. Gefragmenteerde beeldweergave

Deze visualisatie geeft weer hoe grote BLOB's, zoals afbeeldingen, worden opgeslagen in SQLite. De afbeelding is opgesplitst in meerdere secties, net zoals een overflow pagina gefragmenteerde gegevens opslaat.
2. Gegevens opgeslagen op één pagina

Hier past een afbeelding volledig op één databasepagina, zodat er geen overlooppagina's nodig zijn.
3. Gegevens verdeeld over meerdere pagina's

Dit voorbeeld illustreert hoe gegevens op een niet-contigue manier worden opgeslagen, waardoor forensische analyse nodig is om ze correct te reconstrueren.
4. Gegevens reconstrueren van overlooppagina's

Door overflow-paginapointers te volgen, kunnen forensisch analisten gefragmenteerde gegevens opnieuw samenvoegen.
Forensisch belang van overlooppagina's
Veel messaging-apps, mobiele applicaties en databases gebruikersprofielfoto's, chatlogs en bijlagen opslaan in SQLite. Wanneer afbeeldingen en documenten meerdere pagina's beslaan, moeten forensische onderzoekers overflow-structuren begrijpen om de gegevens er goed uit te halen.
Forensische uitdagingen:
- Gefragmenteerde gegevens: BLOB's (zoals afbeeldingen) worden vaak verdeeld over meerdere pagina's.
- Retrieval op basis van aanwijzers: Analisten moeten SQLite's overflow page pointers volgen om de volledige afbeelding of het bestand te reconstrueren.
- Snijproblemen: Eenvoudig zoeken naar een JPEG-header (FFD8FF) en footer (FFD9) kan mislukken omdat ze op afzonderlijke pagina's kunnen staan.
Voorbeeld uit de praktijk: Een profielfoto uit Overflow-pagina's extraheren
Laten we nu stap voor stap een forensisch herstel uitvoeren van een image die is opgeslagen in een SQLite database.
De BLOB in de database zoeken

Gebruik DB-browser voor SQLiteforensisch analisten identificeren de record met de profielfoto in de contacten
tafel.
De BLOB-lengte in hexadecimaal bepalen

Gebruik HxD, een hex-editor, zoeken ze de recordheader, die een VARINT die de BLOB-lengte bepaalt.
De afbeeldingsgrootte bevestigen

De tweede VARINT in de recordkop specificeert de grootte van de afbeelding. In dit geval is de totale grootte 6.325 bytesoverschrijdt de paginalimiet.
Volg de overloopwijzer

Onderaan de hoofdpagina staat een vier-byte pointer leidt tot pagina 4die het volgende deel van de afbeelding bevat.
De overlooppagina onderzoeken

De eerste vier bytes op pagina 4 geven aan of er nog een overflowpagina volgt. Aangezien de waarde 0x00000000
Dit is de laatste overloop pagina.
De afbeelding extraheren en reconstrueren

Forensisch analisten halen de 6.292 bytes van de afbeelding van beide pagina's en deze handmatig reconstrueren.
📌De vier-byte pointers maken GEEN deel uit van de gegevens die worden opgenomen in de gekerfde afbeelding
De herstelde afbeelding controleren

De geëxtraheerde afbeelding is nu volledig hersteld en kan worden bekeken.
Laatste gedachten: Het belang van analyse van overlooppagina's
Bij forensisch onderzoek kan het over het hoofd zien van overflowpagina's leiden tot verlies van kritisch bewijs. Inzicht in het opslagmechanisme van SQLite is cruciaal voor nauwkeurige gegevensextractie en reconstructie.
Forensisch inzicht:
✔️ Altijd controleren op overlooppagina'sbij het analyseren van grote records.
✔️ Volg SQLite's overloopaanwijzerszorgvuldig.
✔️ Eenvoudig vijlsnijtechnieken werkt mogelijk niet vanwege niet-aaneengesloten opslag.
Of het nu gaat om het analyseren van chatdatabases, contactlijsten of toepassingslogboekenForensische professionals moeten bedreven zijn in het herstellen van gefragmenteerde gegevens.
💡 Ben je gefragmenteerde gegevens tegengekomen in SQLite forensisch onderzoek? Hoe benadert u de analyse van overflow pagina's? Deel je inzichten hieronder!