Disk Forensic

MBR, VBR

liqu3ur 2025. 2. 19. 02:51
반응형

MBR(Master Boot Record)

MBR은 디스크의 가장 첫 섹터에 저장되는 데이터를 의미한다. 섹터란 디스크의 최소 기억 단위로, 전통적인 하드디스크에서는 512 바이트 크기를 가진다. 즉, MBR이란 단순히 디스크의 가장 처음 512 바이트 영역에 저장되는 데이터를 지칭하는 용어이다.

MBR 위치

 

VBR(Volume Boot Record)

VBR은 볼륨의 가장 첫 번째 섹터에 저장되는 데이터를 의미한다. VBR은 MBR과 다르게 하나 이상의 섹터로 구성되며, 그 크기는 파일 시스템과 클러스터 크기에 따라 달라질 수 있다.

 

MBR, VBR Role

MBR과 VBR은 컴퓨터의 부팅 과정에서 사용되는 데이터이다. 컴퓨터 메인보드의 BIOS가 POST(Power On Self-Test) 과정과 기본적인 하드웨어 점검을 마치고 나면, MBR 내에 있는 Boot Code를 호출한다.

 

MBR은 저장장치의 파티션 정보, 각 파티션에 설치된 볼륨의 정보를 가지고 있다. MBR Boot Code는 이런 정보를 바탕으로 부팅 가능한 볼륨을 식별하고, 해당 볼륨의 Boot Code로 실행 흐름을 넘기는 역할을 한다. VBR Boot Code는 MBR에서 실행 흐름을 이어 받고, 해당 볼륨에서 컴퓨터가 부팅할 수 있도록 부트로더 및 커널을 로드하는 역할을 한다. 

MBR과 VBR의 역할

 

위 이미지에서 Slack이란 파일 시스템이나 데이터의 구조에서 빈 공간을 나타내는 표현이다. MBR Slack이란 MBR 이후 다음 자료 구조가 오기 전까지의 빈 공간을 의미한다. MBR Slack 이외에도 File Slack, RAM Slack 등의 다양한 Slack이 이있다.

 

MBR Structure

HxD를 관리자 권한으로 실행하고, 도구 탭에서 '디스크 열기'를 클릭한 후, 아래 이미지와 같이 물리 디스크 중 하나를 클릭한다. 가급적이면 읽기 전용으로 열기를 선택하도록 한다.

HxD에서 디스크 열기 수행 방법
MBR 구조 1
MBR 구조 2

이름 바이트 오프셋 설명
Boot Code 446 b3Ayte 0x0 ~ 0x1BD 부팅 과정에서 이용되는 코드
Partition Table Entry #1 16 byte 0x1BE ~ 0x1CD 1번 파티션에 대한 파티션 정보
 Partition Table Entry #2 16 byte 0x1CE ~ 0x1DD 2번 파티션에 대한 파티션 정보
Partition Table Entry #3 16 byte 0x1DE ~ 0x1ED 3번 파티션에 대한 파티션 정보
Partition Table Entry #4 16 byte 0x1EE ~ 0x1FD 4번 파티션에 대한 파티션 정보
Signature 2 byte 0x1FE ~ 0x1FF 고정값 0x55 0xAA

 

각각의 파티션 테이블 엔트리는 16 바이트로 구성되며, 파티션 테이블 영역의 구조는 아래와 같다.

이름 바이트 오프셋 설명
Boot Flag 1 byte 0x0 부팅 불가(0x00), 부팅 가능(0x80)
CHS 시작 주소 3 byte 0x1 ~ 0x3 CHS 방식 기반 시작 주소 *섹터
파일 시스템 타입 1 byte 0x4 NTFS(0x07), FAT32(0x0C) 등
CHS 끝 주소 3 byte 0x5 ~ 0x7 CHS 방식 기반 끝 주소 * 섹터
LBA 시작 주소 4 byte 0x8 ~ 0xB LBA 방식 기반 시작 주소 * 섹터
파티션 총 섹터 개수 4 byte 0xC ~ 0xF 섹터 개수 * 512 = 섹터의 크기

 

위 구조를 참고하여 파티션 테이블 엔트리 #1을 분석해보도록 하겠다. 

  • 부트 플래그: 부팅 불가(0x00)
  • CHS 시작 주소: 0x302 * 0x200(512) = 0x60400
  • 파일 시스템 타입: FAT32(0x0C)
  • CHS 끝 주소: 0xBF3B3A * 0x200(512) = 0x17E767400
  • LBA 시작 주소: 0x80 * 0x200(512) = 0x10000
  • 파티션 총 섹터 개수: 0x2EE0 * 0x200(512) = 5DC000

CHS(Cylinder-Head-Sector) , LBA(Logical Block Addressing)

CHS와 LBA은 각각 하드디스크 내에서 주소를 표현하는 방식이다. 

- CHS 방식은 하드디스크의 실린더, 헤드, 섹터라는 물리적 특성을 이용하여 주소를 표기하는 방식이지만 현재는 거의 사용되지 않는다.

- LBA 방식은 저장장치 내의 모든 섹터들을 일차원적으로 배열하여 순서대로 숫자를 지정해 주소를 계산하는 방식이다. 우리가 일반적으로 사용하는 주소 지정 방식이다.

 

실제로 LBA 시작 주소인 0x1000 오프셋에는 VBR이 위치하는 것을 확인할 수 있다.

MBR 구조 실습

 

VBR Structure

VBR의 구조는 파일 시스템마다 전부 다르기 때문에, 파일 시스템 각각의 VBR 구조를 공부해야 한다. 이는 각 파일 시스템의 구조를 살펴볼 때 함께 살펴보도록 하겠다.

 

반응형

'Disk Forensic' 카테고리의 다른 글

PC-based Partitions  (0) 2025.04.06
Volume Analysis  (0) 2025.02.22
Disk Imaging  (0) 2025.02.19
File system  (0) 2025.02.19
Partition, Volume Practice  (0) 2025.02.18