File System Forensics

[File System] NTFS (30) - $MFT, $Boot 구조체

도깬리 2023. 8. 24. 06:22

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

오늘은 파일시스템 메타데이터 파일 중 $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)