본문 바로가기

MFT 분석

File System - NTFS (20) 이번 글에서는 마지막으로 남은 메타데이터 파일들을 알아보도록 하겠다. [$LogFile] 해당 메타데이터는 MFT 엔트리 세 번째에 위치하며, NTFS 저널링에 사용된다. 속성은 표준 속성을 가지고 있고 로그 데이터를 내용으로 가지고 있는데 이 내용은 $DATA 속성에 포함되어 있다. 하지만 오프셋 구조는 아직 정확히 알려진 바가 없어 애매한 내용을 언급하면 혼란만 초래하므로 해당 메타데이터 파일 분석은 조금 더 정확한 분석이 되면 그때 언급 하도록 하겠다. [$UsrJrnl] 해당 메타데이터 파일은 변경 저널링에 사용되며 파일에 변경이 발생하면 해당 메타데이터 파일에 관련 정보가 기록된다. 해당 파일도 $ObjId, $Quota 등의 파일과 마찬가지로 MFT 예약 엔트리에 있지 않고 $Extend 메타.. 더보기
File System - NTFS (16) 이전글에서는 모든 파일에 할당 되는 속성을 알아봤다면 이번 글부터는 인덱스 속성의 데이터 구조체를 알아 볼 것이다. [$INDEX_ROOT] 해당 속성은 타입 식별자 144를 가지며, 항상 거주 속성이다. 해당 속성은 항상 인덱스 트리의 루트이며, 오직 인덱스 엔트리들의 작은 목록만 포함한다. 해당 속성의 레이아웃은 아래와 같다. [그림 1 - $INDEX_ROOT 속성의 레이아웃] $INDEX_ROOT 속성 헤더는 16바이트의 크기를 가지며, 노드헤더 또한 16바이트의 크기를 가진다. * 참고 : 노드헤더는 $INDEX_ROOT와 $INDEX_ALLOCATION에 모두 동일하게 적용되므로 두 속성을 분석한 후 따로 분석 할 것이다. 아래는 $INDEX_ROOT 속성 헤더 오프셋이다. [그림 2 - $I.. 더보기
File System - NTFS (15) 계속해서 표준 속성의 데이터 구조체에 대해서 알아보자. * 참고 : 이번 글에서 다루는 속성들은 필자가 가지고 있는 이미지에 존재하지 않아 분석을 표로 대체한다. [$DATA] 해당 속성은 고유한 구조체를 가지고 있지 않다. 헤더 이후로는 파일 내용 데이터만 존재한다. 타입 식별자는 128이며 크기는 정해져 있지 않다. 하지만 내용이 700byte 이상이라면 비거주 속성이 되어 클러스터가 할당 될 것이다. [$ATTRIBUTE_LIST] 해당 속성은 MFT 엔트리에 존재하는데 $STANDARD_INFORMATION 속성과 $FILE_NAME 속성 사이에 위치한다. 타입 식별자는 32이며, MFT 엔트리에 여러 속성들이 할당되어 엔트리 크기인 1024byte를 초과 할 때 사용된다. 해당 속성 내용으로는 .. 더보기
File System - NTFS (8) 이번 글에서는 NTFS에서 내용 참조 모델에 해당하는 것에 대해 알아 볼 것이다. [클러스터] NTFS에서 파일은 속성의 집합이라고 말 할 수 있는데, 일부 속성은 거주 속성으로 MFT 엔트리에 존재하게 되고, 나머지 속성들은 비거주 속성으로 MFT 엔트리가 아닌 클러스터에 그 내용이 존재하게 된다. NTFS에서 클러스터는 다른 파일시스템과 마찬가지로 연속적인 섹터의 그룹을 의미한다. 클러스터 수는 2의 제곱이어야 한다. FAT 파일시스템과는 다르게 NTFS에서는 클러스터 주소가 0으로 시작하며, 클러스터 0은 파일시스템의 첫 번째 섹터를 포함한다. 클러스터 주소를 섹터 주소로 변환하기 위해서는 아래와 같은 공식을 적용한다. - 섹터 = 클러스터 * 클러스터 별 섹터 수 NTFS에서는 클러스터가 어떠한 .. 더보기
File System - NTFS (4) 이번 글에서는 이전 글에서 알아 봤던 MFT 엔트리 표준 속성을 제외한 나머지 다른 개념의 속성들을 알아 볼 것이다. 다른 속성들을 알아보기 전에 참고로 알아두어야 할 것이다. 바로 기준 MFT 엔트리와 비기준 MFT 엔트리 라는 개념이다. 기준 MFT 엔트리란, MFT 엔트리에는 속성이 65536개가 올 수 있는데 이 모든 속성의 헤더를 저장하려면 하나 이상의 MFT 엔트리가 필요하게 된다. 이런 경우 추가적인 MFT 엔트리가 필요한데 추가적으로 MFT 엔트리가 파일이나 디렉토리에 할당 될 시 기존에 할당되어 있던 MFT 엔트리가 기준 MFT 엔트리가 된다. 자연스레 원본 MFT 엔트리가 아닌 추가적으로 할당 된 MFT 엔트리가 비기준 MFT 엔트리가 되는 것을 짐작 했을 것이다. 기준 MFT 엔트리에.. 더보기