Window Forensic/File System

[File System] FAT (2) "Reserved Area"

forensic-focus 2025. 3. 15. 20:38

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

Reserved Area 구조

Reserved area 구조 : 파일 시스템 정보
  • Reserved Area는 Boot SectorFSInfo 로 나뉜다.
  • Boot Record에서 File system info필드에 보면 해당 위치가 적혀있다.
  • 아래의 사진을 확인해보면 1섹터에 위치해 있으며 이는 대부분의 경우에 해당한다.
    • 1섹터는 512바이트로 16진수로 변환하면 200이라는 값이 나온다.
    • offset에서 200의 값으로 추적하면 FSInfo에 해당하는 내용이 나온다.

 

1. Boot Sector

    : 운영체제가 컴퓨터를 부팅할 때 필요한 정보 담고 있고, 아래 사진과 같이 BPB, Boot Code, Signature 로 나뉜다.

Boot Sector 전체 구조

 

1. BIOS Parameter Block

    : 파일 시스템의 기본적인 정보 담고 있고, 구조,파일,시스템 크기, 섹터 크기 등을 정의하고 시스템이 올바르게 액세스할 수 있게 하는 중요한 메타데이터 제공.

BPB (BIOS Parameter Block )

Offset 0x00
오프셋 설명
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

 

 

Offset 0x10
오프셋 설명
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는 이영역을 참조하지 않음

 

Offset 0x20
오프셋 설명
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)

 

 

Offset 0x30
오프셋 설명
File system info (2byte, 0x01) FSInfo의 위치
일반적으로 볼륨의 첫 번째 섹터에 존재(단위 : sector)
Boot record backup (2byte, 0x06) 이 영역에 백업 부트 섹터의 위치 표시.
보통 6번 섹터에 위치(단위 : sector) -> 3,072Byte
Reserved (12byte, 0x00) 예약영역, FAT32에서만 사용

 

 

Offset 0x40
오프셋 설명
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에서만 해당

 

 

2. Boot Code 

    : 시스템이 부팅될 때 실행되는 코드로, 볼륨을 읽고 부팅 프로세스를 시작하는데 필요한 지침을 포함한다.

Offset 0x50

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

 

 

2. Signature

    : Boot Sector 끝에 위치하며, '0x55 AA'의 2byte 값을 가진다. 파일 시스템의 무결성 검증과 올바른 볼륨을 확인

FAT 파일 시스템 서명 

  • FAT파일 시스템은 부팅 레코드의 끝 서명이 반드시 와야한다.
  • 511~512에 위치한다.

 

2. FSINFO (File System Information)

     : Boot Sector 다음 섹터에 위치하며, 디스크의 남은 공간과 할당되지 않은 클러스터 등의 정보 저장.

오프셋 설명
Lead Signature (0x41615252)  이 영역은 이 섹터에 FSInfo 구조가 있음을 나타냄
항상 0x41615252값을 가짐

 

 

오프셋 설명
Reserved (0x00)   예약된 영역, 사용되지 않는 영역으로 마음대로 변경 가능
Struct signature (0x61517272) 이 영역은 Lead Signature와 같이 이 섹터에 FSInfo 구조 나타냄
항상 0x61517272 값을 가짐
Free cluster count (0x13E65) 해당 볼륨에 사용 가능한 클러스터 수
* 0xFFFFFFFF일 경우, 사용 가능한 클러스터 수를 계산하지 않으며
   -> 이 값은 신뢰성이 떨어짐 -> 참고용으로만 사용
Next free cluster (0x14D6) 마지막에 위치한 클러스터의 위치,
- 위치를 알 수 없을 경우, 0xFFFFFFFF값을 가짐
Trail signature (0xAA550000) 해당 섹터에 FSInfo 구조가 있음, 항상 0xAA550000값을 가짐

 

 

3. Boot record backup (Windows, USB FAT32) :

  • FAT 파일 시스템의 예약된 영역은 부팅 레코드 및 부팅 레코드 백업을 위해 사용
  • Windows, USB FAT32 의 경우 예약 영역(Reserved)의 첫 번째 섹터에 부팅 레코드가 있다.
  • boot record의 Boot record backup 항목에서 6번째 섹터(0xC00=3072Byte)에서 부팅 레코드를 백업을 한다.

'Window Forensic > File System' 카테고리의 다른 글

[File System] NTFS "MBR/GPT" Analysis  (0) 2025.03.30
[File System] NTFS  (0) 2025.03.17
[File System] FAT (4) "Data Area"  (0) 2025.03.15
[File System] FAT (3) "FAT Area"  (0) 2025.03.15
[File System] FAT  (0) 2025.03.15