본문 바로가기

MFT 엔트리

File System - NTFS (20) 이번 글에서는 마지막으로 남은 메타데이터 파일들을 알아보도록 하겠다. [$LogFile] 해당 메타데이터는 MFT 엔트리 세 번째에 위치하며, NTFS 저널링에 사용된다. 속성은 표준 속성을 가지고 있고 로그 데이터를 내용으로 가지고 있는데 이 내용은 $DATA 속성에 포함되어 있다. 하지만 오프셋 구조는 아직 정확히 알려진 바가 없어 애매한 내용을 언급하면 혼란만 초래하므로 해당 메타데이터 파일 분석은 조금 더 정확한 분석이 되면 그때 언급 하도록 하겠다. [$UsrJrnl] 해당 메타데이터 파일은 변경 저널링에 사용되며 파일에 변경이 발생하면 해당 메타데이터 파일에 관련 정보가 기록된다. 해당 파일도 $ObjId, $Quota 등의 파일과 마찬가지로 MFT 예약 엔트리에 있지 않고 $Extend 메타.. 더보기
File System - NTFS (19) 이번 글에서는 NTFS의 메타데이터 파일 중 $Volume, $ObjId, $Quota 파일에 대해서 알아 볼 것이다. [$Volume] 해당 메타데이터 파일은 두 개의 속성으로 이루어져 있으며 이 속성을 중점적으로 해당 메타데이터 파일을 분석 할 것이다. 해당 메타데이터 파일은 MFT 엔트리 네 번째에 위치하고 있다. 가지고 있는 속성으로는 $VOLUME_NAME과 $VOLUME_INFORMATION이 있다. [$VOLUME_NAME] 해당 속성은 $VOLUME 파일이 할당 되었을 경우만 사용되는 속성이며, 타입 식별자는 96이고 파일 내용으로는 파일시스템의 볼륨 이름을 저장하고 있다. [그림 1 - $VOLUME_NAME 속성의 내용] [$VOLUME_INFORMATION] 해당 속성은 $VOLUME.. 더보기
File System - NTFS (17) 이번 글에서는 간단히 인덱스 엔트리에 대해서 알아 볼 것이다. [표준 인덱스 엔트리] 표준 인덱스 엔트리는 따로 설명 할 것이 없다. 말 그대로 인덱스 엔트리의 표준 레이아웃을 가진 인덱스 엔트리이며, 어떠한 내용도 가질 수 있는 엔트리이다. 아래는 인덱스 엔트리의 오프셋 구조이다. [그림 1 - 표준 인덱스 엔트리 오프셋] - 플래그 : 플래그 오프셋에 올 수 있는 값은 두가지로 위 이미지에 있는 값은 쓰레기 값이다. 1) 0x01 : 자식 노드가 존재한다. 2) 0x02 : 인덱스 엔트리 목록에서 마지막 엔트리 * 참고 : 엔트리 마지막 8바이트는 $INDEX_ALLOCATION에 있는 자식 노드의 VCN 값을 가지고 있는데, 위 이미지는 $INDEX_ROOT 속성의 인덱스 엔트리이다. 또 VCN 값.. 더보기
File System - NTFS (16) 이전글에서는 모든 파일에 할당 되는 속성을 알아봤다면 이번 글부터는 인덱스 속성의 데이터 구조체를 알아 볼 것이다. [$INDEX_ROOT] 해당 속성은 타입 식별자 144를 가지며, 항상 거주 속성이다. 해당 속성은 항상 인덱스 트리의 루트이며, 오직 인덱스 엔트리들의 작은 목록만 포함한다. 해당 속성의 레이아웃은 아래와 같다. [그림 1 - $INDEX_ROOT 속성의 레이아웃] $INDEX_ROOT 속성 헤더는 16바이트의 크기를 가지며, 노드헤더 또한 16바이트의 크기를 가진다. * 참고 : 노드헤더는 $INDEX_ROOT와 $INDEX_ALLOCATION에 모두 동일하게 적용되므로 두 속성을 분석한 후 따로 분석 할 것이다. 아래는 $INDEX_ROOT 속성 헤더 오프셋이다. [그림 2 - $I.. 더보기
File System - NTFS (15) 계속해서 표준 속성의 데이터 구조체에 대해서 알아보자. * 참고 : 이번 글에서 다루는 속성들은 필자가 가지고 있는 이미지에 존재하지 않아 분석을 표로 대체한다. [$DATA] 해당 속성은 고유한 구조체를 가지고 있지 않다. 헤더 이후로는 파일 내용 데이터만 존재한다. 타입 식별자는 128이며 크기는 정해져 있지 않다. 하지만 내용이 700byte 이상이라면 비거주 속성이 되어 클러스터가 할당 될 것이다. [$ATTRIBUTE_LIST] 해당 속성은 MFT 엔트리에 존재하는데 $STANDARD_INFORMATION 속성과 $FILE_NAME 속성 사이에 위치한다. 타입 식별자는 32이며, MFT 엔트리에 여러 속성들이 할당되어 엔트리 크기인 1024byte를 초과 할 때 사용된다. 해당 속성 내용으로는 .. 더보기