본문 바로가기

MFT

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 (10) 이번 글에서는 NTFS에서 파일이름 참조모델에 해당하는 데이터들을 알아 볼 것이다. 파일이름 참조모델은 파일이름과 파일내용을 연결하여 주는 데이터를 포함하고 있는 모델이다. NTFS에서는 앞에서 언급한 인덱스를 이용하여 디렉토리 내용을 구성한다. 인덱스 엔트리는 노드 값을 포함하며, $INDEX_ROOT, $INDEX_ALLOCATION 속성에 저장된다. $INDEX_ROOT 속성에 저장된 값은 항상 트리구조에서 루트 노드 값에 해당하며, $INDEX_ALLOCATION 속성에 저장 된 인덱스 엔트리들은 트리구조에서 리프노드에 해당한다. 또 $BITMAP 속성은 인덱스 레코드들의 할당 상태를 관리하는데 사용된다. * 참고 : 인덱스 레코드는 $INDEX_ALLOCATION속성에서 인덱스 엔트리를 포함하는.. 더보기
File System - NTFS (9) 이번에는 NTFS 에서 메타데이터 참조 모델에 해당 하는 것들을 알아보자. 메타데이터란, 파일이나 디렉토리를 설명하는 데이터를 포함하는 것이다. 메타데이터 참조 모델을 분석함으로써 파일이나 디렉토리의 상세 정보를 얻을 수 있다. [$STANDARD_INFORMATION] 해당 속성은 모든 파일과 디렉토리에 존재하는 속성으로, 포함하는 데이터로는 타임스탬프 세트 및 소유권, 보안, 할당 정책이 있다. 해당 속성 타입 ID는 16이며 윈도우 별로 고정된 크기를 갖는다. * 참고 : Windows 2000(72byte), Windows NT(48byte) 해당 속성이 가지고 있는 타임스탬프는 총 4개의 시간 값을 가지고 있는데 그 종류는 아래와 같다. - 생성 시간 : 파일이 생성된 시간 - 수정 시간 : $.. 더보기
File System - NTFS (6) 이번 글에서는 NTFS 인덱스의 속성에 대해서 알아 볼 것이다. NTFS에서 b-tree를 사용한다고 앞 글에서 언급 했었는데 해당 트리에서는 노드에서 값을 저장하기 위해서 "인덱스 엔트리(Index Entry)" 라는 데이터 구조체를 사용한다. 인덱스 엔트리는 많은 타입들을 가질 수 있고, 모두 표준 헤더 필드를 사용한다. 인덱스 엔트리는 노드의 구성원이며, 비어 있는 인덱스 엔트리는 노드의 마지막을 뜻한다. 인덱스 엔트리의 구조는 단순하다. 헤더와 속성으로 이루어져 있는데 정확한 것은 아래 이미지에서 확인 할 수 있다. [그림 1 - 인덱스 엔트리 구조] 인덱스 엔트리를 구성원으로 가지고 있는 노드들은 MFT 엔트리 속성 두 개에 따라 저장방식이 달라진다. 만약 속성이 $INDEX_ROOT 속성이라면.. 더보기