안녕하세요. 도깬리 포렌식스입니다.
오늘은 파일시스템 메타데이터 파일 중 $MFT와 $Boot 구조체에 대해 알아 보겠습니다. 모두 화이팅하세요!!!
$MFT 파일
MFT 엔트리 0번 입니다.
표준 속성( $STANDARD_INFORMATION, $FILE_NAME, $DATA)과 고유한 속성인 $BITMAP을 갖습니다.
$BITMAP
한 개의 비트가 1로 되어 있으면 : 해당 엔트리는 할당된 상태를 의미합니다.
한 개의 비트가 0로 되어 있으면 : 해당 엔트리는 비할당 상태를 의미합니다.
$DATA = MFT 자체 입니다.

$Boot 파일
MFT 엔트리 7번 입니다.
부트 섹터와 $DATA 속성에 있는 부트코드를 포함합니다.
항상 섹터 0에서 시작됩니다.
부트 섹터에서 중요한 값은
각 섹터의 크기와 클러스터의 크기입니다.
이것이 있어야 어떠한 위치도 확인이 가능하기 때문입니다.
MFT의 시작 위치와 각 MFT 엔트리의 크기
MFT 엔트리는 항상 1,024바이트였지만 향후에는 변경될 가능성도 있습니다.
$MFTMirr의 $DATA속성의 주소
포렌식 또는 복구도구는 이 주소값을 보고 $MFT 엔트리의 백업본이 어디에 있는지 등 MFT의 위치를 찾습니다.
부트섹터의 데이터 구조체
| 바이트 범위 | 설명 |
| 0~2 | 부트코드로 점프하는 어셈블리 명령어 |
| 3~10 | OEM 이름 |
| 11~12 | 섹터당 바이트 수 |
| 13~13 | 클러스터당 바이트 수 |
| 14~15 | 예약된 섹터 (MS는 반드시 이 값이 0이어야 한다고 언급함) |
| 16~20 | 사용되지 않음 (MS는 반드시 이 값이 0이어야 한다고 언급함) |
| 21~21 | 매체 기술자 |
| 22~23 | 사용되지 않음 (MS는 반드시 이 값이 0이어야 한다고 언급함) |
| 24~31 | 사용되지 않음 (MS는 반드시 이 값이 0이어야 한다고 언급함) |
| 32~35 | 사용되지 않음 (MS는 반드시 이 값이 0이어야 한다고 언급함) |
| 36~39 | 사용되지 않음 (MS는 반드시 이 값이 0이어야 한다고 언급함) |
| 40~47 | 파일시스템의 전체 섹터 수 |
| 48~55 | MFT 시작 클러스터 주소 |
| 56~63 | MFT Mirror의 시작 클러스터 주소 |
| 64~64 | 파일레코드 크기 (MFT 엔트리) |
| 65~67 | 사용되지 않음 |
| 68~68 | 인덱스레코드의 크기 |
| 69~71 | 사용되지 않음 |
| 72~79 | 일련번호 |
| 80~83 | 사용되지 않음 |
| 84~509 | 부트코드 |
| 510~511 | 시그너처 (0xAA55) |

감사합니다. 오늘도 즐거운 하루 되세요.
"좋아요"와 "구독하기"는 힘이 됩니다.
참고문서 : File System Forensic Analysis (Brian Carrier)

'File System Forensics' 카테고리의 다른 글
| [File System] NTFS (32) - $LogFile, $UsnJrnl 구조체 (0) | 2023.08.30 |
|---|---|
| [File System] NTFS (31) - $Bitmap, $Volume 구조체 (0) | 2023.08.28 |
| [File System] NTFS (29) - 인덱스 엔트리 구조체 (0) | 2023.08.22 |
| [File System] NTFS (28) - $DATA, $INDEX_ROOT, $INDEX_ALLOCATION 속성 (0) | 2023.08.20 |
| [File System] NTFS (27) - $FILE_NAME 속성 (0) | 2023.08.18 |