File System Forensics

[File System] FAT 파일시스템 (8) - File Allocation Table

도깬리 2023. 6. 14. 06:22

안녕하세요. 도깬리 포렌식스입니다.

오늘은 FAT 파일시스템에서 File Allocation Table (FAT)에 대해 알아 보겠습니다. 모두 화이팅하세요!!!

 

FAT 구조체

클러스터의 할당 상태를 기록한 영역입니다.

다음에 할당할 클러스터를 찾을 때 참조합니다.

대부분 2개의 FAT이 존재하고, FAT의 개수는 부트섹터에 기록됩니다.

 

첫 번째 FAT

예약된 섹터 다음부터 시작됩니다.

전체섹터 개수는 부트섹터에 기록되어 있습니다.

 

두 번째 FAT

첫 번째 FAT의 다음 섹터에서 시작됩니다.

테이블은 같은 크기의 엔트리로 구성됩니다

각 엔트리의 크기는 파일시스템의 버전에 따라 다릅니다.

FAT12 : 12비트 크기의 엔트리

-  FAT16 : 16비트 크기의 엔트리

-  FAT32 : 32비트 크기의 엔트리

 

엔트리 주소는 0부터 시작하고, 각각의 엔트리는 같은 주소의 클러스터와 매칭됩니다.

비할당 클러스터의 경우 FAT엔트리 값은 0 입니다.

할당 클러스터의 경우 FAT엔트리 값은 다음 클러스터의 주소를 기록합니다.

할당 클러스터중에서 파일/디렉토리의 마지막 클러스터인 경우 FAT엔트리 값은 파일의 마지막’ (EOF)이라는 식별자를 기록합니다.

- FAT12 : 0xFF8~

- FAT16 : 0xFFF8~

- FAT32 : 0x0FFF FFF8~

 

손상된 클러스터의 경우 FAT엔트리 값은 손상되었다라는 식별자를 기록한다

- FAT12 : 0xFF7

- FAT16 : 0xFFF7

- FAT32 : 0x0FFF FFF7

 

파일시스템의 주소를 갖는 첫 번째 클러스터는 2번 클러스터이기 때문에 FAT엔트리 0, 1번은 불필요합니다.

- 0 FAT엔트리 : 매체 유형의 복사본을 나타냄 (정확도가 떨어짐)

- 1 FAT엔트리 : 파일시스템의 불량 상태를 저장 (정확도가 떨어짐)

 

예제 데이터 보기 (FAT32_128MB.dd)

 

 

 

 

 

감사합니다. 오늘도 즐거운 하루 되세요.

"좋아요"와 "구독하기"는 힘이 됩니다.

참고문서 : File System Forensic Analysis (Brian Carrier)