본문 바로가기

NTFS

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 (5) NTFS에서는 앞 글에서도 언급 했듯이 b-tree 를 사용한다고 했었다. NTFS는 많은 상황에서 인덱스 구조체를 사용한다. NTFS 인덱스는 정렬된 순서로 저장된 속성들의 모음을 일컫는다. 인덱스가 제일 흔하게 사용되는 것이 디렉토리인데, $FILE_NAME 속성을 포함하기 때문이다. NTFS에서 인덱스는 이진트리, b-tree로 정렬된다. 이진트리는 자료구조론에서 자주 언급되는 개념 중 하나이기 때문에 여기서 언급은 생략하고 b-tree에 대해서만 설명 하겠다. b-tree는 이진트리와 유사한 형태이지만, 노드 별로 자식 노드가 2개 이상이다. b-tree에는 여러 종류와 규칙이 있지만 여기서는 b-tree에 대해서만 설명 할 것이며 노드 삽입, 삭제에 대해서 이야기 해보도록 하겠다. b-tree는.. 더보기
File System - NTFS (4) 이번 글에서는 이전 글에서 알아 봤던 MFT 엔트리 표준 속성을 제외한 나머지 다른 개념의 속성들을 알아 볼 것이다. 다른 속성들을 알아보기 전에 참고로 알아두어야 할 것이다. 바로 기준 MFT 엔트리와 비기준 MFT 엔트리 라는 개념이다. 기준 MFT 엔트리란, MFT 엔트리에는 속성이 65536개가 올 수 있는데 이 모든 속성의 헤더를 저장하려면 하나 이상의 MFT 엔트리가 필요하게 된다. 이런 경우 추가적인 MFT 엔트리가 필요한데 추가적으로 MFT 엔트리가 파일이나 디렉토리에 할당 될 시 기존에 할당되어 있던 MFT 엔트리가 기준 MFT 엔트리가 된다. 자연스레 원본 MFT 엔트리가 아닌 추가적으로 할당 된 MFT 엔트리가 비기준 MFT 엔트리가 되는 것을 짐작 했을 것이다. 기준 MFT 엔트리에.. 더보기