본문 바로가기

NTFS

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 (18) 이번 글부터는 NTFS의 메타데이터 파일들을 분석 할 것이다. [$MFT] 해당 메타데이터 파일은 앞 글에서도 여러번 언급하였기 때문에 해당 메타데이터 파일의 일반적인 속성은 분석하지 않고 고유 속성인 $BITMAP 속성만 분석하여 볼 것이다. $BITMAP 속성은 NTFS의 MFT 엔트리 할당 상태를 관리하는 속성으로 각 비트가 MFT 엔트리와 맵핑되어 MFT 엔트리가 할당되면 해당 MFT 엔트리와 맵핑 관계인 비트가 1로 설정된다. [그림 1 - $MFT 파일의 $BITMAP 속성 오프셋] 위 이미지를 보면 F로 설정된 오프셋과 0으로 설정된 오프셋이 있는데 F로 설정된 오프셋이 할당 상태를 뜻하고 0으로 설정된 오프셋이 비 할당 상태를 뜻한다. MFT 엔트리 맵핑 관계는 각 오프셋을 비트로 변환하면.. 더보기
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.. 더보기