Window Forensic

[File System] FAT (2) "Boot Record"

forensic-focus 2025. 3. 15. 19:45

< 실제 사용중인 USB 추출하여 각 레코드별로  구조 분석 >

Boot Record 구조

Jump boot code (3byte, 0x9058EB) : 점프 코드로 점프하는 코드

OEM Name (8byte, 0x302E35534F44534D) : OEM회사를 나타내는 문자열

Bytes Per sector (2byte, 0x200) : 한 개 섹터를 구성하는 바이트 수

-> 1 sector = 512Byte

Sector per Cluster (1byte, 0x20) : 한 개 클러스터를 구성하는 섹터 수(2의 배수)

-> 1 cluster = 32sector = 16,384Byte = 16KB

Reserved Sector Count (2byte, 0x0886) : Reserved area의 크기(단위 : sector)

-> 2182 sector = 1,116,224 Byte

 

 

Number of FATs (1byte, 0x02) : 이 볼륨에 존재하는 FAT 영역의 갯수

Root Directory Entry Count (2byte, 0x00) :

FAT16에서만 사용하는 영역, 루트 디렉토리에 몇 개의 항목이 있을 수 있는지 나타냄

(호환성을 위해 Bytes Per sector와 크기가 동일 한 것으로 설정 권장). FAT32는 이 영역을 0으로 설정

Total Sector 16 (2byte, 0x00) : FAT16에서만 사용하는 영역

해당 볼륨의 총 섹터. FAT32는 이 영역을 0으로 설정

Media (1byte, 0xF8) : 해당 볼륨이 어떤 미디어 장치에 있는지 나타냄.

0xF8은 고정 디스크를 말하며, (USB의 경우 일반적으로 0xF0 값이 사용됨)

이외의 값은 모두 플로피 디스크를 나타냄

FAT Size (2byte, 0x00) : 해당 볼륨의 총 섹터, FAT32는 이 영역을 0으로 설정

Sector per track (2byte, 0x3F) : x86계열의 인터럽트에 해당,

Windows, USB는 이 영역을 참조하지 않음

Number of heads (2byte, 0xFF) : x86계열의 인터럽트에 해당,

Windows, USB는 이 영역을 참조하지 않음

Hidden Sector (4byte, 0x60) : 해당 볼륨 이전의 섹터 수

x86계열의 인터럽트에 해당하며 windows는 이영역을 참조하지 않음

 

 

 

Total Sector 32 (4byte, 0x03BC3FA0) : 해당 볼륨의 총 섹터, FAT32에서만 사용

-> 62,668,704 sector = 32,086,376,448 Byte

FAT Size 32 (4byte, 0x3BBD) : FAT 영역의 섹터 수(FAT영역 2개중 한 개)

FAT32에서만 사용 -> 7,647sector = 3,915,264 Byte

External Flags (2byte, 0x00) : 이 영역에 여러 구성 매개 변수 저장, FAT32에서만 사용

File system version (2byte, 0x00) : FAT32의 버전

- Windows가 인식 하는 버전보다 높을 경우 인식하지 않음

- FAT32버전은 증가하지 않았으므로 0x00이 저장

Root directory cluster (4byte, 0x02) : root directory의 위치를 표시

- FAT32에서만 사용, 기본 값은 2를 가짐(단위 : cluster)

 

 

File system info (2byte, 0x01) : FSInfo의 위치

일반적으로 볼륨의 첫 번째 섹터에 존재(단위 : sector)

Boot record backup (2byte, 0x06) : 이 영역에 백업 부트 섹터의 위치 표시.

보통 6번 섹터에 위치(단위 : sector) -> 3,072Byte

Reserved (12byte, 0x00) : 예약영역, FAT32에서만 사용

 

 

Number of drives (1byte, 0x00) : 0x13 인터럽트용으로 Windows는 참조 안함, FAT32에서만 사용

Reserved (1byte, 0x00) : 예약영역, FAT32에서만 사용

Boot signature (1byte, 0x29) : 확장 부팅 서명, 항상 0x29의 값이 존재하며 이는 부트 레코드의

끝이 아니고 부트 레코드에 이어 3개의 추가 필드가 있음을 의미

Volume ID (4byte, 0x19CD803B) : 볼륨 일련 번호. FAT16에서만 해당

Volume Label (19byte, 0x20202020454D414E204F4E) :

- 볼륨 레이블로 디스크 드라이브 이름

- FAT16에서만 해당

 

 

File System Type (8byte, 0x2020203233544146) : 파일시스템이름, Windows는 참조 안함 -> FAT32

 

 

FAT 파일 시스템 서명 :

- FAT파일 시스템은 부팅 레코드의 끝 서명이 반드시 와야한다.

- 511~512에 위치한다.

 

Boot record backup (Windows, USB FAT32) :

- FAT 파일 시스템의 예약된 영역은 부팅 레코드 및 부팅 레코드 백업을 위해 사용

- Windows, USB FAT32 의 경우 예약 영역(Reserved)의 첫 번째 섹터에 부팅 레코드가 있다.

- boot record Boot record backup 항목에서 6번째 섹터(0xC00=3072Byte)에서 부팅 레코드를 백업을 한다.

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

[File System] FAT (6) " Directory Entry"  (0) 2025.03.15
[File System] FAT (4) "Data Area"  (0) 2025.03.15
[File System] FAT (5) "Data Area"  (0) 2025.03.15
[File System] FAT (3) "Reserved Area"  (0) 2025.03.15
[File System] FAT  (0) 2025.03.15