목록전체 글 (63)
Piki's Play
▶ $Quota 파일 - $INDEX_ROOT와 $INDEX_ALLOCATION 속성을 사용한다. $O 인덱스는 한 SID와 소유자 SID를 연결시키고, $Q 인덱스는 할당정보에 자산의 ID를 연결시킨다. $O 인덱스를 위한 인덱스 엔트리는 아래에서 주어지는 필드들을 갖는다. -> 이 인덱스 엔트리의 플래그 값들은 파일 이름에서 보았던 것과 동일하다. 목록에 마지막 엔트리일때 설정된다. 만약 자식이 존재하면 그 바이트는 자식의 VCN을 위해 사용된다. 다음 예에서 $O 인덱스에 있는 첫 엔트리를 볼 수 있다. -> 바이트 0~1은 소유자 ID가 엔트리 시작으로부터 오프셋 28에 위치한다는 것을 보여주고, 바이트 2~3은 소유자 ID의 길이를 의미하고 해당 값은 4바이트이다. 바이트 8~9는 인덱스 엔트리..
13.4 파일시스템 메타데이터 파일 - 앞에서 파일과 인덱스의 다양한 속성을 살펴보았고, 지금부터는 파일시스템 메타데이터 파일들에 대해 설명하겠다. 이들 대부분은 일반 파일 속성을 사용하지만 그 중 몇개는 자신만의 속성을 갖는다. 이 속성들에 대해서는 다음 절에 설명한다. ▶ $MFT 파일 - 속성 $MFT 파일은 MFT엔트리 0에 위치하고 파일 시스템 모든 파일에서 중요하기 때문에 이번 장 시작에서부터 언급을 하였다. - $MFT의 고유한 한 속성은 MFT엔트리 할당상태를 관리하는 $BITMAP 속성이다. 그 속성들은 바이트들로 구성되고 한 비트가 1로 설정될 때 그 엔트리는 할당된 것이고, 그 반대로 비트가 0이면 엔트리는 할당되지 않은 것이다. icat 도구에 속성타입 176을 지정해서 $BITMA..
13.3 인덱스 속성과 데이터 구조 - 이전 절에서는 모든 파일에 적용한 속성과 개념을 다루었다. 이번 절에서는 데이터 구조체 및 인덱스와 관련있는 속성들에 대해 상세히 살펴본다. 인덱스의 기본 개념은 정리된 트리에 데이터 구조체가 있다는 것이다. 그 트리는 한개 이상의 노드를 갖고, 각 노드는 한개 이상의 인덱스 엔트리를 갖는다. 트리는 루트 $INDEX_ROOT 속성에 위치하고, 다른 노드는 $INDEX_ALLOCATION 속성에 있는 인덱스 레코드에 위치한다. $BITMAP 속성은 인덱스 레코드들이 할당상태를 관리하기 위해 사용된다. 속성을 먼저 설명하고, 그 이후에 데이터 구조체를 설명한다. ▶ $INDEX_ROOT 속성 - $INDEX_ROOT는 거주속성이고, 144타입 식별자를 갖는다. 이것은..
-> 이전 절에서는 MFT엔트리와 속성 헤더를 처리하는 방법을 간단히 설명하였다. 이 절에서는 각각 다른 속성 내용 타입을 어떻게 처리하는지 설명해보자 ▶ $STANDARD_INFORMATION 속성 - 타입 식별자 16인 $STANDARD_INFORMATION 속성은 항상 거주속성이고, 파일이나 디렉토리의 기본 메타데이터를 포함한다. 모든 파일과 디렉토리에 존재하고 가장 낮은 타입 식별자를 갖기 때문에 일반적으로 첫번재 속성이다. - 4개의 시간값들은 1601년 1월 1일 UTC부터 100나노 단위로 저장이된다. 같은 시간 필드들이 $FILE_NAME 속성에도 있지만 윈도우가 파일 속성에서 보여주는 시간값은 $STANDARD_INFORMATION 정보이고, 업데이트 되는 정보도 마찬가지이다. ※ 아래의..
- 이 장은 NTFS 3번째 장으로서 데이터 구조체에 대해 설명한다. 앞에서는 NTFS의 기본 개념과 어떻게 분석해야 하는지 설명했다. - 먼저 기본 요소들의 데이터 구조체와 특정 속성들과 인덱스 타입들을 자세히 분석하고, 마지막으로 메타데이터 파일들을 다룬다. - NTFS에 대한 공식 명세는 없다. 13.1 기본 개념 - 이 절에서는 NTFS의 기본 데이터 구조체의 개념을 기술한다. 첫 번째 하위 절에서는 데이터 구조체의 신뢰성을 제공하는 구조체의 설계특징을 분석하고, 다음은 MFT엔트리와 속성 헤더의 데이터 구조체에 대해 설명한다. ▶ Fixup 값 - NTFS에는 신뢰성을 향상 시키기위해 사용하는 저장기술이 있다. NTFS는 한 섹터가 넘는 길이를 갖는 데이터 구조체와 fixup 결합한다. fixu..
12.5 응용프로그램 범주 - NTFS는 많은 응용프로그램 수준의 기능을 지원하는 유일한 파일시스템이다. 이 기능들은 파일시스템에서 꼭 필요하지는 않지만 응용프로그램이나 운영체제들이 효율적으로 운영되기 위해서 필요하다. 이 절에서는 디스크 할당, 로깅, 변경 저널링에 대해 기술하겠다. 그 데이터 구조체들은 13장에서 설명한다. 이 절에서는 기능의 응용프로그램 수준의 필수 데이터만을 언급하도록 하겠다. ▶ 디스크 할당 - NTFS는 디스크 공간 할당을 지원한다. 관리자는 각 사용자별로 사용할 수 있는 공간을 제한하는 할당을 설정할 수 있다. 할당 정보 일부는 파일시스템 데이터로 저장되고 다른 데이터는 레지스트리 같은 응용프로그램 수준의 파일들에 저장된다. NTFS 3.0 이전 버전에서는 MFT엔트리 9에 ..