Disk Forensic

[디지털 포렌식] GPT Header & Partition Table Entry 복구

Forliq 2025. 5. 3. 20:22

GPT(GUID Partition Table) Header 복구

1. 정상 GPT 파티션 구조의 가상 하드 디스크(VHD) 확인

FTK Imager 실행 → "File" → "Physical Drive" → GPT 파티션 구조 디스크 선택 → "Finish" 실행

 

관리자 권한으로 HxD 실행 → "도구" → "디스크 열기"  GPT 파티션 구조 디스크 선택 → "읽기전용으로 열기" 해제  → "수락" → 경고 "수락" 실행

 

2. GPT Header 손상

GPT 파티션 구조 디스크의 GPT Header(섹터 1)를 0으로 채우고 저장한다.

섹터 1 드래그 후 우클릭 → "선택 영역 채우기" → "제로바이트" 선택 → "수락" → Ctrl + S 실행

 

다시 FTK Imager로 디스크 열기 (GPT 파티션의 손상을 시각적으로 확인 가능)

Partition 1의 file system이 Microsoft Reserved → Unknown으로 변경되고, GPT → basic disk로 변경 및 File List을 변화를 확인할 수 있다.

 

3. GPT Header 복구

Backup Area(섹터 -1)를 복사한 뒤 원래 GPT Header가 존재해야 하는 섹터 1에 덮어쓰기를 진행한다.

 

덮어쓰기 이후 Backup Area이기 때문에 GPT Header에 맞게 수정해야 한다. 수정할 정보는 다음과 같다.

  • LBA of current GPT header structure: GPT Header 백업 복사본 주소 (수정 전) → GPT Header의 논리 주소 (수정 후)
  • LBA of the other GPT header structure: GPT Header의 논리 주소 (수정 전) → GPT Header 백업 복사본 주소 (수정 후)
  • LBA of the start of the partition table: Backup Partition Table 시작 주소 (수정 전) → Partition Table 시작 주소 (수정 후) (필수 X, 완전 복구용)

Backup Area 구조

 

LBA of current GPT header structure와 LBA of the other GPT header structure를 서로 바꾸고, LBA of the start of the partition table를 섹터 2(0x02)로 수정 후 저장한다.

 

다시 FTK Imager로 수정한 GPT 파티션 구조 디스크를 불러온다.

 

파티션 정보가 정상적으로 복구된 것을 확인할 수 있다.

 

Partition Table Entry 복구

1. Partition Table Entry 손상

GPT 파티션 구조 디스크의 Partition Table(섹터 2)를 0으로 채우고 저장한다.

 

FTK Imager에서 열어보면 Primary Partition Entry Array에 아무 정보도 포함되어 있지 않음을 확인할 수 있다.

 

섹터 2~33은 Primary Partition Table이 저장되어 있고, 백업 본사본인 Backup Partition Table은 대칭적으로 섹터 -33~-2에 저장되어 있기 때문에, 섹터 2를 복구하기 위해서 섹터 -33을 복사해 섹터 2에 덮어쓰기하면 복구할 수 있다.

전체 섹터 수(409,600) + Backup Partition Table(-33) = 409,567번 섹터에 섹터 2와 동일한 Patition Table이 저장되어 있을 것이다.

 

409,567번 섹터를 복사한 뒤, 2번 섹터에 덮어쓴다.

 

저장 후, FTK Imager에서 열어보면 정상적으로 Partition Table이 복구된 것을 확인할 수 있다.