Navigera i GPT-partitionens inmatningsfält för rättsmedicinsk analys. Del 3.

Del 3

Inledning

I våra tidigare inlägg lade vi grunden för att förstå GUID-partitionstabellen (GPT) genom att undersöka den skyddande MBR:en och GPT-huvudet. Nu, i del 3, vänder vi vårt fokus till GPT Partition Entry Array. Denna viktiga komponent i GPT-schemat ger en detaljerad karta över alla partitioner på disken, där varje post innehåller viktig information om en specifik partition. Genom att förstå strukturen och funktionen hos GPT Partition Entry Array får du en heltäckande bild av hur GPT hanterar partitioner, vilket möjliggör effektivare analys, felsökning och dataåterställning.

GPT (GUID-partitionstabell) Partition Entry Array

GUID Partition Table (GPT) Entry Array är en viktig del av GPT-partitioneringssystemet, som används för att definiera och hantera partitionerna på en hårddisk. Tänk på det som en detaljerad lista som innehåller uppgifter om varje partition på hårddisken, ungefär som en bibliotekskatalog som innehåller uppgifter om varje bok.

Nyckelkomponenter i GPT Entry Array:

Partition GUID: Varje partition har en unik identifierare, Partition GUID, som säkerställer att varje partition kan identifieras på ett unikt sätt, även i olika system.

Unikt ID: Detta är en annan unik identifierare som är specifik för varje partition, vilket ger ytterligare ett lager av unik identifiering.

Starta LBA (logisk blockadressering) för partitionen: Här anges partitionens startpunkt på hårddisken. Det talar om för systemet var partitionen börjar.

LBA för partitionens slut: Precis som start-LBA anger detta var partitionen slutar på disken.

Attribut Bits: Det här är flaggor som ger ytterligare information om partitionen, t.ex. om den är startbar eller om den har några speciella attribut.

Partitionens namn: Varje partition kan ha ett namn som kan läsas av människor, vilket gör det lättare för oss att identifiera partitionens syfte eller innehåll. Namnet avslutas med ett null-tecken för att markera slutet på strängen.

Låt oss bryta ner alla dessa i detalj så att du förstår varje post i matrisen.

När disken är konfigurerad som en GPT-disk är den första partitionen som skapas EFI System Partition (ESP). Detta är en dold partition som inte är lätt tillgänglig för användarna. Den här partitionen finns i sektor 2048 och är formaterad som FAT32 för kompatibilitet med alla system (Windows, Linux, MacOS).

Skärmdumpen ovan visar en standardinstallation av Windows 10 där Microsoft Reserved Partition skapades tillsammans med en Basic Data Partition som specificerades av användaren under installationen.

Nedan följer ett utdrag av GUIDs från en tabell som finns på Wikipedia-sidan GUID Partition Table:

Källa: https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs

Naturligtvis kommer GUID inte att lagras i GUIID-formuläret när du visar värdena i Hex Viewer. 

GUID:erna konverteras precis som vi gjorde i det tidigare blogginlägget, men kan också enkelt ses när man tittar på det i HxD:

Vi kan bekräfta GUID:erna för volympartitionerna med kommandot: mountvol.exe

Genom att känna till start-LBA och slut-LBA kan vi beräkna hur stor partitionen är. Till exempel EFI-partitionen:

Startande LBA: 2048

Slutande LBA: 534527

Total längd: 532479 sektorer x 512 byte/sektor = 272629248 byte vilket är 260 MB.

GPT-partitionens inmatningsmatris för säkerhetskopiering

Backup GPT Partition Entry Array är placerad i slutet av disken och före GPT Header, närmare bestämt 33 sektorer före slutet av disken (LBA (n - 33) där n är den sista sektorn på disken). Vi kan också göra en beräkning av varför det är 33 sektorer före slutet av disken eller 32 sektorer före GPT-huvudet för säkerhetskopiering.

Varje partitionspost är 128 byte och det finns totalt 128 poster i Entry Array. Det innebär att det finns 16 384 sektorer i matrisen eller 32 sektorer (16384/512). 

Backup GPT Header pekar på platsen för Backup GPT Partition Entry Array

Backup GPT Partition Entry Array nära slutet av disken

Reparera en GPT-partition Entry Array

Att reparera GPT Partition Entry Array är lika enkelt som att kopiera den 16.384 byte stora säkerhetskopian som hittades i 33 sektorer från slutet av disken och klistra in dem i LBA 2 till 3. Det finns inget behov av några ändringar/modifieringar av hex-värden eftersom dessa är exakta kopior.

Backup-GPT:en som ligger nära slutet av disken är densamma som den primära. Faktum är att om man skär ut sektorerna för var och en och hashar dem visar det att de är en exakt matchning. 

Slutsats

I den här tredje delen har vi grundligt undersökt GPT Partition Entry Array, en kritisk komponent i GPT-schemat. Genom att bryta ned varje fält i partitionsposterna, från GUID:erna till attributbitarna och partitionsnamnen, har vi sett hur GPT ger ett robust ramverk för att organisera och komma åt diskdata. Den här kunskapen är viktig för kriminaltekniska undersökningar, dataåterställning och systemadministration, och ger dig färdigheter att navigera och manipulera GPT-partitionerade diskar på ett effektivt sätt. Håll ögonen öppna för vårt nästa inlägg, där vi kommer att fördjupa oss i praktiska tillämpningar och fallstudier och omsätta teori i praktik.

Detta inlägg avslutar vår 3-delade serie om GPT-partitionsstrukturer.
Om du missat de tidigare inläggen kan du börja med Del 1 - Den skyddande MBR:endär vi undersöker hur kompatibilitet med äldre system upprätthålls, och fortsätter med Del 2 - GPT-huvudet, som definierar disklayouten och säkerställer integriteten.

Vill du gå djupare? Prenumerera på vårt nyhetsbrev för kommande innehåll om partitionsåterställning, hashing på disknivå och CTF-utmaningar baserade på verkliga kriminaltekniska scenarier.

Facebook
Twitter
E-post
Skriv ut

Ett svar

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *