본문 바로가기

NTFS 분석

File System - NTFS (17) 이번 글에서는 간단히 인덱스 엔트리에 대해서 알아 볼 것이다. [표준 인덱스 엔트리] 표준 인덱스 엔트리는 따로 설명 할 것이 없다. 말 그대로 인덱스 엔트리의 표준 레이아웃을 가진 인덱스 엔트리이며, 어떠한 내용도 가질 수 있는 엔트리이다. 아래는 인덱스 엔트리의 오프셋 구조이다. [그림 1 - 표준 인덱스 엔트리 오프셋] - 플래그 : 플래그 오프셋에 올 수 있는 값은 두가지로 위 이미지에 있는 값은 쓰레기 값이다. 1) 0x01 : 자식 노드가 존재한다. 2) 0x02 : 인덱스 엔트리 목록에서 마지막 엔트리 * 참고 : 엔트리 마지막 8바이트는 $INDEX_ALLOCATION에 있는 자식 노드의 VCN 값을 가지고 있는데, 위 이미지는 $INDEX_ROOT 속성의 인덱스 엔트리이다. 또 VCN 값.. 더보기
File System - NTFS (14) 이번 글에서는 표준 속성 중 MFT 엔트리에 가장 기본적으로 할당되는 $STANDARD_INFORMATION 속성과 $FILE_NAME 속성에 대해서 알아 볼 것이다. [$STANDARD_INFORMATION 속성] 해당 속성은 항상 거주 속성으로 타입 식별자는 16이다. 또 모든 파일과 디렉토리에 존재하며, 파일이나 디렉토리를 위한 기본 메타데이터 파일들을 포함하고 있다. 아래는 해당 속성의 오프셋 별로 의미하는 것을 분석하여 두었다. [그림 1 - $STANDARD_INFORMATION 속성 오프셋] - 4개의 시간 값 : 해당 시간값들이 우리가 흔히 속성 창에서 볼 수 있는 시간 값이며, 1601년 1월 1일 UTC부터 100나노초 단위로 계산되어 저장된다. - 플래그 : 해당 파일에 적용 될 수 .. 더보기
File System - NTFS (12) 지금까지 NTFS에 대한 개념과 파일시스템 참조 모델을 기준으로 여러가지를 알아 보았는데 이 개념들과 정보들을 혼합해서 이해하려고 할때에는 조금 무리가 있다. 그래서 이 글에서는 지금까지 공부한 지식으로 NTFS에서 파일이 어떻게 할당되고 삭제 되는지에 대하여 이야기 해 볼것이다. 일단 파일 생성부터 살펴보자. [할당] 현재 설명할 NTFS의 기본 레이아웃은 파일이 할당 될 dir1 디렉토리가 이미 존재하며, 클러스터가 2048byte 크기이며, 할당할 파일(File.txt)의 크기는 4000byte이다. 1. 먼저 파일시스템이 첫 번째 섹터를 읽고 부트 섹터의 클러스터 크기, MFT 시작 주소, MFT 엔트리들의 크기를 정한다. 그 후 MFT 첫 번째 엔트리($MFT)를 참조하고 $MFT 파일의 $DA.. 더보기
File System - NTFS (11) 이번 글에서는 마지막 참조 모델인 응용 프로그램 참조 모델에 해당하는 NTFS 데이터를 알아 볼 것이다. 다른 파일시스템들과는 다르게 NTFS는 많은 응용프로그램 수준의 기능을 지원한다. 여기서 알아볼 기능들은 디스크 할당, 저널링, 변경 저널링 기능이다. 이러한 기능들은 파일시스템에서 필수적으로 필요한 기능들은 아니지만, 사용자의 편의성등을 위해 제공되는 기능들이다. 지금부터 하나씩 알아보도록 하자. [디스크 할당] 이 기능은 사용자 별로 사용 할 수 있는 공간을 할당 하는 기능으로, 할당 정보의 일부는 파일시스템 메타데이터 파일로 저장되는데, NTFS 3.0 버전을 전후로 3.0 이전 버전에서는 MFT 열 번째 엔트리인 \$Quota에 저장되었고 이후 버전에서는 \$Extend 디렉토리에 존재하였다... 더보기
File System - NTFS (9) 이번에는 NTFS 에서 메타데이터 참조 모델에 해당 하는 것들을 알아보자. 메타데이터란, 파일이나 디렉토리를 설명하는 데이터를 포함하는 것이다. 메타데이터 참조 모델을 분석함으로써 파일이나 디렉토리의 상세 정보를 얻을 수 있다. [$STANDARD_INFORMATION] 해당 속성은 모든 파일과 디렉토리에 존재하는 속성으로, 포함하는 데이터로는 타임스탬프 세트 및 소유권, 보안, 할당 정책이 있다. 해당 속성 타입 ID는 16이며 윈도우 별로 고정된 크기를 갖는다. * 참고 : Windows 2000(72byte), Windows NT(48byte) 해당 속성이 가지고 있는 타임스탬프는 총 4개의 시간 값을 가지고 있는데 그 종류는 아래와 같다. - 생성 시간 : 파일이 생성된 시간 - 수정 시간 : $.. 더보기