MBR과 EBR 분석

Updated:

디스크의 첫 번째 섹터에는 MBR이 존재한다. 이번 글에서는 MBR과 EBR을 분석하여 파티션 정보를 얻는 방법을 기술한다.

  1. MBR 분석
  2. EBR #1 분석
  3. EBR #2 분석
  4. EBR #3 분석
  5. 전체구조
  6. 특이사항


1. MBR 분석

MBR의 구조는 아래와 같다.

이에 따라, 이미지 파일(.dd)을 열었을 때 Partition table 은 아래 그림에서 선택된 부분이다.

(HxD 에서 파일을 열 때, 상단의 Extras - Open disk image 로 열어야, sector 단위로 줄이 그어져 보기 편하다.)

Partition table 의 구조는 아래와 같다.

  • Boot Flag : 0x80(부팅 파티션), 0x00
  • Parition Type : 07(NTFS), 05(EBR) 등 값에 따라 파티션이 어떤 파일시스템인지 알려준다.
  • Starting LBA Address, Size in Sector : Little Endian 이고 sector 단위 이다.(usually 1 sector is 512 bytes)
  • LBA : Logical Block Addressing (물리적 절대 주소가 아니라, 상대적 주소라고 생각하면 된다.)

이에 따라, MBR 내의 파티션 테이블 정보를 해석하면 다음과 같다.

  • Partition #1
    • Boot Flag = 00, Starting CHS Address = 02 03 00, Partition type = 07(NTFS), Ending CHS Address = 8E 0C 02, Starting Address = 00 00 00 80, Size = 00 00 A0 00
  • Partition #2
    • Boot Flag = 00, Starting CHS Address = 8E 0D 02, Partition type = 07(NTFS), Ending CHS Address = 1B 16 05, Starting Address = 00 00 A0 80, Size = 00 00 A0 00
  • Partition #3
    • Boot Flag = 00, Starting CHS Address = 1B 17 05, Partition type = 07(NTFS), Ending CHS Address = A7 20 07, Starting Address = 00 01 40 80, Size = 00 00 A0 00
  • next EBR
    • Boot Flag = 00, Starting CHS Address = 02 03 00, Partition type = 05(DOS extended partition), Ending CHS Address = 8E 0C 02, Starting Address = 00 01 E0 80, Size = 00 02 10 00
MBR Start Size
Partition #1 00 00 00 80 sectors 00 00 A0 00
Partition #2 00 00 A0 80 sectors 00 00 A0 00
Partition #3 00 01 40 80 sectors 00 00 A0 00
next ebr 00 01 E0 80 sectors (=0x3C10000bytes) 00 02 10 00 sectors (=0x4200000bytes)


2. EBR #1 분석

EBR#1의 physical starting address = MBR 의 next ebr address = 0x3C10000

  • Partition #4
    • Boot Flag = 00, Starting CHS Address = 00 03 02, Partition type = 07(NTFS), Ending CHS Address = 02 0C 8E, Starting Address = 00 00 00 80, Size = 00 00 A0 00
  • EBR #1
    • Boot Flag = 00, Starting CHS Address = 02 0D 8E, Partition type = 05(DOS extended partition), Ending CHS Address = 05 18 1D, Starting Address = 00 00 A0 80, Size = 00 00 A0 80
EBR #1 Start Size
partition#4 00 00 00 80 sectors (=0x10000 bytes) 00 00 A0 00 sectors (=0x1400000 bytes)
next ebr 00 00 A0 80 sectors (=0x1410000 bytes) 00 00 A0 80 sectors (=0x1410000 bytes)
partition#4 physical starting address
= ebr#1 physical starting address + parition#4 starting LBA address
= 0x3C10000 + 0x10000 = 0x3C20000
(즉, partition#4 의 LBA 는 ebr#1 의 physical 주소로부터의 상대적 주소이다.)


3. EBR #2 분석

EBR#2의 physical starting address
= MBR 의 next ebr address + ebr#1 next ebr address
= 0x3C10000+0x1410000 = 0x5020000

  • Partition #5
    • Boot Flag = 00, Starting CHS Address = 00 03 02, Partition type = 07(NTFS), Ending CHS Address = 02 0C 8E, Starting Address = 00 00 00 80, Size = 00 00 A0 00
  • EBR #2
    • Boot Flag = 00, Starting CHS Address = 05 19 1D, Partition type = 05(DOS extended partition), Ending CHS Address = 08 26 2E, Starting Address = 00 01 41 00, Size = 00 00 C0 80
EBR #2 Start Size
partition#5 00 00 00 80 sectors (=0x10000 bytes) 00 00 A0 00 sectors (=0x1400000)
next ebr 00 01 41 00 sectors (=0x2820000 bytes) 00 00 C0 80 sectors (=0x1810000)
partition#5 physical starting address
= ebr#2 physical starting address + parition#5 starting LBA address
= 0x5020000 + 0x10000 = 0x5030000
(즉, partition#5 의 LBA 는 ebr#2 의 physical 주소로부터의 상대적 주소이다.)


4. EBR #3 분석

EBR#3의 physical starting address
= MBR 의 next ebr address + ebr#2 next ebr address
= 0x3C10000+0x2820000 = 0x6430000

※ MBR 의 next ebr address + ebr#1 next ebr address + ebr#2 next ebr address 가 아님에 유의해야 한다.

  • Partition #6
    • Boot Flag = 00, Starting CHS Address = 00 03 02, Partition type = 07(NTFS), Ending CHS Address = 03 0E 11, Starting Address = 00 00 00 80, Size = 00 00 C0 0
EBR #3 Start Size
partition #6 00 00 00 80 (=0x10000) 00 00 C0 0 (=0x1800000)
partition#6의 physical starting address
= ebr#3 physical starting address + parition#6 starting LBA address
= 0x6430000 + 0x10000 = 0x6440000

파티션 테이블 내 next ebr 이 더 이상 없기 때문에, partition#6 가 마지막이다.


5. 전체 구조

MBR
Partition #1
Partition #2
Partition #3
EBR #1
Partition #4
EBR #2
Partition #5
EBR #3
Partition #6


6. 특이사항

MBR의 next ebr size (0x4200000)는 EBR 들이 가리키는 partition#4, partition#5, partition#6 들의 합(0x1400000 + 0x1400000 + 0x1800000) 보다 같거나 크다.


참고

[Forensics] MBR 구조


Comments