본문 바로가기

MFT 엔트리

File System - NTFS (13) 이번 글부터는 지금까지 알아본 NTFS 시스템의 갖가지 개념들을 기초로 하여 NTFS 내에서 사용되는 데이터 구조체들을 분석하여 볼 것이다. 데이터 구조체를 분석하기에 앞서 한가지 참고적으로 알아둬야 할 개념이 있다. Fixup 이라는 개념인데, 이 개념은 아래와 같다. [Fixup] Fixup이라는 것은 NTFS에서 신뢰성을 향상 시키기 위하여 사용하는 저장 기술로, 데이터가 저장된 섹터의 손상여부를 판단하기 위한 기술이다. 해당 기술의 원리는 일반적인 섹터의 마지막 2바이트를 특정 시그니처로 교체 해 두고, 원래의 2바이트 값은 Fixup 배열에 저장하여 교체 해 둔 시그니처가 다른 값으로 교체되지 않았다면 섹터가 손상되지 않은 것으로 보고 배열에 있는 원래의 값을 다시 섹터 마지막 2바이트에 넣는다.. 더보기
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 속성이라면.. 더보기
File System - NTFS (2) 이번 글에서는 NTFS에 핵심이라고 말할 수 있는 MFT에 대해서 알아 볼 것이다. 상세히 분석하는 정도는 아니고, 일단 간략하게 알아 본 뒤 조금 더 뒤에서 상세히 분석 해 볼 것이다. 일단 MFT를 설명하기 전에 NTFS의 개념을 알아야 한다. NTFS는 시스템 내에서 중요한 데이터가 파일로 취급된다. 다른 말로 하면 NTFS 시스템 내에서는 관리데이터 들이 파일로 취급받는다. 위와 같은 이유로 관리 데이터들이 일반 파일처럼 파일시스템 어떤 위치에도 위치 할 수 있게 된다. 그래서 NTFS는 다른 파일시스템들과 달리 특정 레이아웃을 가지고 있지 않다. 다만, NTFS 볼륨 첫 섹터에는 부트 섹터가 있고, 부트 섹터에는 부트코드가 포함되어 있을 뿐이다. 개념을 간단히 숙지 했으니 이제 MFT에 대해서 .. 더보기