정보보안/포렌식

GPT 파티션 분석

오오렌지 2022. 10. 8. 16:47

@ GPT 파티션 분석

 

 - 사용 도구 : HxD
 - 실습 파일 : GPT

 - GPT는 1번 섹터에 GPT 헤더 정보(92Byte)가 있으며, 2번 섹터에 파티션 정보(128Byte 단위)가 있다.

 


1. HxD
를 이용하여 'GPT' 파일을 오픈한다.

 

 - HxD -> Extras -> Open disk image ->  'GPT' 파일 선택 -> Sector Size 'OK' 버튼 클릭

 

 
2.
첫번째 파티션(0x01BE ~ 0X01CD) 영역을 확인하여 파티션 파일시스템 타입 및 GPT 섹터 위치를 확인한다.

 

 - 파티션 파일시스템 타입(0x01C2)이 '0xEE'이므로 EFI GTP DISK 타입니다.

 - LBA 시작 주소(0x01C6~0x01C9)는 '01 00 00 00'이므로 1번 섹터(00 00 00 01)이다.

 - 1번 섹터로 이동하여 GPT 헤더 92Byte(45 46 49 20 50 41 42 54 ~ FC B9 1A E4)를 확인한다. 
 - 이때, 1번 섹터 512Byte는 GPT 헤더 92byte + Reserved 420Byte로 구성된다.

 

 
3. Primary GPT Sector
를 분석한다.

 

 - GPT 헤더는 1번 섹터에 저장되어 있다.
 - GPT 헤더 92Byte에는 다음과 같은 GPT 관련 내용이 저장되어 있다.

 

Signature(8Byte)

 영역  내용
 45 46 49 20 50 41 52 54  'EFI PART' 기록

 

Revision(4Byte) 

 영역  내용
 00 00 01 00 버전 1.0

 

Header 크기(4Byte) 

 영역  내용
5C 00 00 00  GPT 헤더 크기(92byte)

 

CRC32 of Header(4Byte) 

 영역  내용
16 88 44 50  Header 시작부터 끝에 대한 무결성 체크

 

 

 

 

Reserved(4Byte) 

 영역  내용
00 00 00 00  예약된 영역이며 사용하지 않는다.

 

Current LBA(8Byte) 

 영역  내용
01 00 00 00 00 00 00 00 현재 LBA 주소

 

Backup LBA(8Byte) 

 영역  내용
AF C2 E7 0E 00 00 00 00 GPT Header 정보를 백업한 Sector 위치

 

First usable LBA for Partition(8Byte) 

 영역  내용
22 00 00 00 00 00 00 00 파티션 구성을 할 수 있는 영역의 시작 위치
Primary Partition Table Last LBA + 1

 

Last usable LBA for Partition(8Byte) 

 영역  내용
8E C2 E7 0E 00 00 00 00 파티션 구성을 할 수 있는 영역의 마지막 위치
Secondary Partition Table Last LBA - 1

 

Disk GUID(16Byte)

 영역  내용
E2 83 B4 33 56 08 73 4E A8 C9 96 BC 37 64 81 69  장치 UUID 번호

 

Partition Entries Starting LBA(8Byte) 

 영역  내용
02 00 00 00 00 00 00 00 Partition Entry 시작 위치
각 파티션 정보가 저장되어 있음

 

Number of Partition Entries(4Byte) 

 영역  내용
80 00 00 00 지원하는 GPT Partition Entry 개수

 

Size of Partition Entry(4Byte) 

 영역  내용
80 00 00 00 GPT Partition Entry 크기(128Byte)
대부분 128Byte 사용

 

CRC32 of Partition Array(4Byte) 

 영역  내용
FC B9 1A E4 파티션 CRC32 값

 

 

Reserved(420Byte) 

 영역  내용
 
 
0x25C ~ 0x3FF
사용하지 않는 영역

 

 
4. Secondary GPT Sector
를 분석한다.

 

 - 각각의 파티션 정보는 2번 섹터에 128Byte 단위로 저장되어 있다.

 - 0x400 ~ 0x47F | 0x480 ~ 0x4FF | 0x500 ~ 0x57F | 0x580 ~ 0x5FF

 - 첫번째 파티션 정보를 분석하도록 한다.

 

Partition Type GUID(16Byte) 

 영역  내용
28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B 파티션 타입 고유 번호
파티션 파일 시스템과 OS/서비스 확인 가능

 

Unique Partition GUID(16Byte) 

 영역  내용
 
2B 80 26 60 4D AD 05 47 B9 B1 BF 81 BD D2 CA C7
파티션마다 할당하는 고유한 값을 저장

 

First LBA(8Byte) 

 영역  내용
28 00 00 00 00 00 00 00 파티션 시작 주소
(0x28 = 40)

 

Last LBA(8Byte) 

 영역  내용
27 40 06 00 00 00 00 00 파티션 마지막 주소
(0x64027 = 409639)

 

Attribute Flags(8Byte) 

 영역  내용
00 00 00 00 00 00 00 00 파티션 속성을 나타내는 값

 

Partition Name(72Byte) 

 영역  내용
45 00 46 00 49 00 20 00 53 00 79 00 73 00 74 00 65 00 6D 00 20 00 50 00 61 00 72 00 74 00 69 00 74 00 69 00 6F 00 6E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x438 ~ 0x47F
파일 시스템 이름
UTF-16 사용