< 실제 사용중인 USB 추출하여 각 레코드별로 구조 분석 >
Reserved Area 구조
Reserved area 구조 : 파일 시스템 정보
- Reserved Area는 Boot Sector와 FSInfo 로 나뉜다.
- Boot Record에서 File system info필드에 보면 해당 위치가 적혀있다.
- 아래의 사진을 확인해보면 1섹터에 위치해 있으며 이는 대부분의 경우에 해당한다.
- 1섹터는 512바이트로 16진수로 변환하면 200이라는 값이 나온다.
- offset에서 200의 값으로 추적하면 FSInfo에 해당하는 내용이 나온다.
1. Boot Sector
: 운영체제가 컴퓨터를 부팅할 때 필요한 정보 담고 있고, 아래 사진과 같이 BPB, Boot Code, Signature 로 나뉜다.
1. 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 |