티스토리 뷰

MBR(Master boot record)

Anonymice 2015. 12. 3. 14:42
MBR은 부팅을 위해 각종 정보가 담겨있는 것으로써, 하드 드라이브의 섹터 0번째에 기록이 되어있다. MBR의 간략한 구조는 아래와 같다.

범위 | 설명
0-229 | Executable code
300-455 | Error messages
446-461 | Information of Partition 1
462-477 | Information of Partition 2
478-493 | Information of Partition 3
494-509 | Information of Partition 4
510-511 | Signature(55 AA)

여기서 눈여겨 봐야 할 부분은 446번째 섹터부터 509 섹터까지이다. 이 부분에 주 파티션(Primary partition)에 대한 정보가 담겨있으므로 이 부분에 대해 분석이 가능하면 고의로 파티션을 삭제한 부분에 대해 복구가 가능하다.

예를들어, 아래와 같은 형태의 정보가 있다고 보자.

80 DF 14 0C 07 FE FF FF 00 28 03 00 34 C3 67 0D

파티션에 대한 내용은 아래와 같다.

내용(크기) Bootable(1) | Starting CHS(3)3 | Partition type(1) | Last CHS(3) | Relative sector(4) | Total sector(4)
•Bootable: 부팅 가능한지 여부를 확인하는 부분이다. 80 으로 되어있으면 부팅 가능한 파티션이다.
•Starting CHS: Cylinder Header Sector 방식의 준말인 CHS방식으로 계산한 시작 주소를 가리킨다. 현재는 잘 쓰이지 않는 방식이므로 무시해도 된다.
•Partition type: 파티션의 종류를 확인할 수 있다. 07은 NTFS, 0B는 FAT32 등 여러가지 파티션 종류가 있으며, 전체 목록은 Wikipedia:Partition type에서 확인할 수 있다.
•Last CHS: CHS방식으로 계산한 끝 주소를 가리킨다.
•Relative sector: Logical Block Addressing의 준말인 LBA방식으로 계산할 수 있는 부분이다. LBA방식의 파티션 시작 주소를 나타낸다.
•Total sector: 해당 파티션의 전체 섹터 크기를 나타낸다.

다시 예를 들어서 설명한다.
80 DF 14 0C 07 FE FF FF 00 28 03 00 34 C3 67 0D

보기 쉽도록 파티션 내용마다 끊어서 설명한다.

80(Bootable): 부팅 가능함
DF 14 0C(Starting CHS): CHS방식의 파티션 시작 주소
07(Partition type): NTFS
FE FF FF(Last CHS): CHS방식의 파티션 끝 주소
00 28 03 00(Relative sector): LBA방식의 파티션 시작 주소
34 C3 67 0D(Total sector): 전체 섹터 크기

위 내용에서 계산이 필요한 부분은 아래와 같이 계산한다.

1.해당하는 값을 Little-endian으로 읽는다.
2.10진수로 변환

위와 같이 계산하게 되면, 해당 파티션의 전체 섹터 크기가 나오게 된다. 예시로 본 값을 계산하게 되면 아래와 같다.

LBA방식 파티션 시작 주소
1. 00 28 03 00 → 00 03 28 00 (Little-endian)
2. 00 03 28 00 → 206848 (Convert to decimal)

전체 섹터 크기
1. 34 C3 67 0D → 0D 67 C3 34 (Little-endian)
2. 0D 67 C3 34 → 224903988 (Convert to decimal)

전체 섹터 크기에 섹터의 크기(512 byte)를 곱하면 파티션의 크기를 구할 수 있다.

압수한 하드 드라이브가 1TB라고 써있지만 이미징하여 살펴본 결과 활성 파티션은 1TB가 되지 않는 경우, 그리고 MBR에 주 파티션이 2개 이상 있으나, 이미징하여 살펴본 결과 주 파티션이 1개만 보이는 경우는 MBR을 분석하여 추가적인 데이터를 수집할 수 있게 된다.


* 이 글은 4n6.center 블로그에 작성했던 글을 가져왔기 때문에 마크업이 적용되지 않은 티스토리에서 정상적으로 보이지 않을 수 있습니다.


댓글