Del 3
Innledning
I de foregående innleggene har vi lagt grunnlaget for å forstå GUID-partisjonstabellen (GPT) ved å se nærmere på den beskyttende MBR-en og GPT-overskriften. Nå, i del 3, retter vi fokus mot GPT Partition Entry Array. Denne viktige komponenten i GPT-skjemaet gir et detaljert kart over alle partisjonene på disken, og hver oppføring inneholder viktig informasjon om en bestemt partisjon. Ved å forstå strukturen og funksjonen til GPT Partition Entry Array får du en omfattende oversikt over hvordan GPT håndterer partisjoner, noe som muliggjør mer effektiv analyse, feilsøking og datagjenoppretting.
GPT (GUID-partisjonstabell) Partisjonsoppføringsmatrise
GUID Partition Table (GPT) Entry Array er en viktig del av GPT-partisjoneringssystemet, som brukes til å definere og administrere partisjonene på en harddisk. Tenk på det som en detaljert liste som registrerer detaljene for hver partisjon på disken, på samme måte som en bibliotekskatalog som viser detaljene for hver bok.
Nøkkelkomponenter i GPT-oppføringsmatrisen:
Partisjon GUID: Hver partisjon har en unik identifikator, kjent som Partition GUID, som sikrer at hver partisjon kan identifiseres entydig, selv på tvers av ulike systemer.
Unik ID: Dette er en annen unik identifikator som er spesifikk for hver partisjon, og som gir et ekstra lag med unik identifikasjon.
Start LBA (logisk blokkadressering) for partisjonen: Dette angir startpunktet for partisjonen på disken. Den forteller systemet hvor partisjonen begynner.
Slutt på LBA for partisjon: I likhet med start-LBA angir denne hvor partisjonen slutter på disken.
Attributtbiter: Dette er flagg som gir tilleggsinformasjon om partisjonen, for eksempel om den er oppstartbar eller om den har spesielle attributter.
Navn på partisjon: Hver partisjon kan ha et navn som kan leses av mennesker, slik at det blir lettere for oss å identifisere formålet med eller innholdet i partisjonen. Navnet avsluttes med et null-tegn for å markere slutten på strengen.
La oss gå nærmere inn på alle disse, slik at du forstår hver enkelt oppføring i matrisen.


Når disken er konfigurert som en GPT-disk, er den første partisjonen som opprettes, EFI-systempartisjonen (ESP). Dette er en skjult partisjon som ikke er lett tilgjengelig for brukerne. Denne partisjonen finnes i sektor 2048 og er formatert som FAT32 for å være kompatibel med alle systemer (Windows, Linux, MacOS).
Skjermbildet ovenfor viser en standard Windows 10-installasjon der Microsoft Reserved Partition ble opprettet sammen med en Basic Data Partition som ble spesifisert av brukeren under installasjonen.

Nedenfor er et utdrag av GUID-er fra en tabell som finnes på Wikipedia-siden GUID Partition Table:

Kilde: https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs
GUID-en vil selvfølgelig ikke bli lagret i GUIID-skjemaet når du viser verdiene i Hex Viewer.

GUID-ene konverteres på samme måte som vi gjorde i forrige blogginnlegg, men kan også enkelt sees når du ser det i HxD:

Vi kan bekrefte GUID-ene til volumpartisjonen med kommandoen: mountvol.exe


Når vi kjenner start-LBA og slutt-LBA, kan vi beregne hvor stor partisjonen er. For eksempel EFI-partisjonen:
Start LBA: 2048
Slutt på LBA: 534527
Total lengde: 532479 sektorer x 512 byte/sektor = 272629248 byte, som er 260 MB.


Sikkerhetskopiering av GPT-partisjonoppføring
Backup GPT Partition Entry Array er plassert på slutten av disken og før GPT Header, nærmere bestemt 33 sektorer før slutten av disken (LBA (n - 33) der n er den siste sektoren på disken). Vi kan også regne litt på hvorfor det er 33 sektorer før slutten av disken, eller 32 sektorer før Backup GPT Header.
Hver partisjonspost er på 128 byte, og det er 128 oppføringer totalt i Entry Array. Det betyr at det er 16 384 sektorer i matrisen, eller 32 sektorer (16384/512).
Backup GPT Header peker til plasseringen av Backup GPT Partition Entry Array


Sikkerhetskopiering av GPT-partisjonoppføring nær slutten av disken
Reparere et GPT-partisjonsoppføringsområde
Reparasjon av GPT Partition Entry Array er så enkelt som å kopiere den 16 384 byte store sikkerhetskopien som ble funnet i 33 sektorer fra slutten av disken, og lime dem inn i LBA 2 til 3. Det er ikke nødvendig å endre/modifisere hex-verdiene, siden dette er nøyaktige kopier.
Backup-GPT-en som ligger nær enden av disken, er den samme som den primære. Faktisk viser utskjæring av sektorene for hver av dem og hashing av dem at de er nøyaktig like.

Konklusjon
I denne tredje delen har vi gått grundig gjennom GPT Partition Entry Array, en kritisk komponent i GPT-skjemaet. Ved å bryte ned hvert felt i partisjonspostene, fra GUID-ene til attributtbitene og partisjonsnavnene, har vi sett hvordan GPT gir et robust rammeverk for organisering av og tilgang til diskdata. Denne kunnskapen er viktig for kriminaltekniske undersøkelser, datagjenoppretting og systemadministrasjon, og gir deg ferdighetene du trenger for å navigere og manipulere GPT-partisjonerte disker på en effektiv måte. Følg med på neste innlegg, der vi går nærmere inn på praktiske anvendelser og casestudier, slik at du kan omsette teori til praksis.
Dette innlegget avslutter vår serie i tre deler om GPT-partisjonsstrukturer.
Hvis du har gått glipp av de tidligere innleggene, kan du starte med Del 1 - Den beskyttende MBR-enhvor vi undersøker hvordan kompatibilitet med eldre systemer opprettholdes, og fortsetter med Del 2 - GPT-overskriftensom definerer disklayouten og sikrer integriteten.
Vil du gå dypere? Abonner på nyhetsbrevet vårt for å få kommende innhold om partisjonsgjenoppretting, hashing på disknivå og CTF-utfordringer basert på virkelige kriminaltekniske scenarier.
Ett svar