반응형
예약된 영역(FAT12/16 | FAT32)
아래는 FAT12, FAT16과 FAT32 구조이다.
FAT12, FAT16은 예약된 영역에서 Boot Sector가 1섹터를 차지한다.
- 0~31번으로 총 32섹터를 가진다
- 0, 6번 섹터 : 볼륨 부트섹터(Volume Boot Sector)
- 1, 7번 섹터 : File System Information(FSINFO) 구조체
- 2, 8번 섹터 : 부트스트랩 코드(Boot Strap Code)
Boot Sector
Jump command to boot code & BIOS Parameter Block
Jump command에서 58의 위치로 가라는 의미이다. FAT12/16은 'EB 3C 90', FAT32는 'EB 58 90' NTFS는 'EB 52 90'값으로 나타난다.
BIOS Parameter Block 안에 주황색 칸은 아래 표를 참고하여 보기 편하게 만든 것
BIOS Parameter Block(BPB)
필드 이름 | 설명 |
OEM ID | 운영체제 버전별 ID- Win95 : MSWIN4.0- Win98 : MSWIN4.1- Linux : mkdosfs |
Bytes Per Sector | 섹터당 바이트 수 |
Sector Per Cluster | 클러스터당 섹터 수 |
Reserved Sector Count | 예약된 영역 섹터 수. BPB를 보는게 것이 제일 정확하다 |
Number of FAT Tables | FAT 테이블 수 (보통 0x02) |
Root Directory Entry Count | 루트 디렉터리 최대 파일 수(FAT12/16= 512, FAT32=0) |
Total Sector 16 | 파티션 총 섹터 수( 2바이트로 부족할 경우 Total Sector 32 사용 ) |
Media Type | - 0xF8 : Fixed disk - 0xF0/F9/Fd/FF/FC/FE=floppy, removable |
FAT Size 16 | FAT12, FAT16에서 FAT영역이 가지는 2바이트 크기의 섹터 수 ( FAT32 = 0 ) |
Sectors Per Track | 장치의 트랙 당 섹터 수 ( 보통 0x3F=63 ) |
Number of Heads | 장치의 헤더 수 |
Hidden Secotrs | 파티션 시작 전 섹터의 수 |
Total Sector 32 | 4바이트 크기의 파티션 총 섹터 수 |
FAT Size 32 | FAT 하나의 영역이 가지는 4바이트 크기의 섹터 수 |
Ext Flags (하단 Ext Flags 참고) | 여러 개의 FAT 영역을 사용할 경우 설정 값 |
File System Version | 파일시스템의 주 버전(major)과 하위 버전(minor) |
Root Directory Cluster | 루트 디렉토리가 위치한 클러스터 값- FAT12/16은 고정된 위치, FAT32는 보통 클러스터 2번 사용 |
File System Information | FSINFO 구조체가 저장된 섹터 번호(보통 0x01) |
Backup Boot Record | 백업된 루트 섹터의 위치(보통 0x06) |
Drive Number | BIOS INT13h 드라이브 번호 |
Boot Signature | 확장 부트 시그니처(보통 0x29)- 확장 부트 시그니처가 존재할 경우,이어서 3개의 부가 정보(볼륨ID, 레이블, 타입)가존재한다는 의미 |
Volume ID | 볼륨 시리얼 번호 |
Volume Label | 볼륨 레이블(없을 경우 "NO NAME")- 볼륨 레이블 값은 루트 디렉터리에도 존재 |
File System Typ | 파일 시스템 형식(FAT32) |
Ext Flags
지금까지 Boot Sector 를 알아보았습니다. 다음으로 FAT기본 구조에서 1, 7번 섹터에 위치한 FSINFO를 알아보도록 하겠습니다.
FSINFO(FAT32 only)
예약된 영역에서 0, 6번은 Boot Sector가, 1, 7번 섹터에는 FSINFO, 2, 8번 섹터에는 Boot Strap 코드가 위치하고 있습니다. 그러면 FSINFO에 대해서 알아봅시다.
범위에 대해서 살짝 설명하자면, 범위가 총 두 개이다. 왼쪽은 0부터 시작했을 떄, 오른쪽은 기존 1번 섹터부터 시작했을 때, 10진수와 16진수 둘 다 표기해놓았다.
Boot Strap
FSINFO 다음으로는 Boot Strap 코드이다. 이 부분은 추가적으로 사용하는 부분인데 거의 비어있다. 섹터의 마지막 부분에 0x55AA 시그니처만 남아있다.
반응형
'DFIR > DFIR' 카테고리의 다른 글
[파일 시스템]FAT32 - 3편(Data Area, restore) (0) | 2021.11.12 |
---|---|
[파일 시스템]FAT32 - 2편(FAT Area) (0) | 2021.11.12 |
[Windows Forensics] 이벤트 로그 (0) | 2021.11.10 |
프리패치(Prefetch)란? (0) | 2021.07.04 |
생성시간 vs 수정시간 (0) | 2021.07.03 |