2019-01-04
MFT
Meta Data File
$MFT --> 0번 MFT Entry : MFT 에 대한 정보를 담고 있는 파일이다.
$MFTMirr --> 1번 MFT Entry : MFT Mirror 에 대한 정보를 담고 있는 파일이다
$LogFile --> 2번 MFT Entry
$Volume --> 3번 MFT Entry : 볼륨에 대한 정보
$AttrDef --> 4번 MFT Entry
.(Root Directory) --> 5번 MFT Entry : 루트 디렉토리에 대한 정보
$Bitmap --> 6번 MFT Entry : 클러스터의 사용현황을 빠르게 파악할 수 있다.
$Boot --> 7번 MFT Entry : 부트 레코드에 대한 정보
$BadClus --> 8번 MFT Entry : 문제가 발생한 클러스터 정보를 기록해 둔다.
$Secure --> 9번 MFT Entry : 파일의 보안 및 권한에 대한 정보
$Upcase --> 10번 MFT Entry : 유니코드 대문자가 기록되어 있다.
$Extend --> 11번 MFT Entry
$ObjId --> 정해진 번호 없음
$Quota --> 정해진 번호 없음
$Reparse --> 정해진 번호 없음
$UsnJrnl --> 정해진 번호 없음
$$ 새로 생성되는 일반 파일이나 디렉토리는 MFT Entry는 24번부터 사용한다.
MFT의 시작
- 0번 MFT Entry 시작 = $MFT파일(meta data)의 MFT의 ENTRY
- MFT * 8(Cluster) = 6291456
- 디렉토리 안의 목록 확인
- $INDEX_ROOT 를 확인
- $INDEX_ALLOCATION 확인
[시간속성]
[ 파일이름 : x30 == > $MFT, 크기: 00000068 = 6줄반 ]
[ 속성타입ID : x80, 크기 : 00000048 = 4줄반정도 ]
[ 파일속성 : 3/1 1칸의 크기, 3칸의 크기 ]
[ Attribute Type ID : xB0 ]
[ 2E : "." 루트디렉토리의 파일이름은 "." ]
루트디렉토리는 x50 => 10을 넘어감 ==>6291466
[ 38: 3줄반뒤에 속성타입 ]
[ Root Directory는 x90, xA0, xB0으로 이루어져있음 ]
$ INDEX_ROOT --> Attribute Type ID : 0x90
$ INDEX_ALLOCATION --> Attribute Type ID : 0xA0
$ BITMAP --> Attribute Type ID : 0xB0
$INDEX_ROOT
[ 00: Resident / 속성의 헤더 , 20: 컨텐츠까지의 길이 ]
$INDEX_ROOT 구조
- Index Root Header
- Index Root Header 항목들
- Attribute Type ID in Index
- Collation Rule
- 0x00 -> Binary
- 0x01 -> File Name
- 0x02 -> Unicode String
- 0x10 -> Unsigned Long
- 0x11 -> SID
- 0x12 -> Security Hash
- 0x13 -> Multiple Unsigned Long
- Index Record Size (바이트 수)
- Index Record Size (Cluster 개수)
- Index Root Header 항목들
- Attribute Type ID in Index
- Collation Rule
- 0x00 -> Binary
- 0x01 -> File Name
- 0x02 -> Unicode String
- 0x10 -> Unsigned Long
- 0x11 -> SID
- 0x12 -> Security Hash
- 0x13 -> Multiple Unsigned Long
- Index Record Size (바이트 수)
- Index Record Size (Cluster 개수)
[ Example ]
INDEX_NODE 구조
- Index Node Header
- Index Node Header 항목들
- Index Node Header 항목들
- Offset to First Index Entry
- Total Size of Index Entries
- Allocated Size of Index Entries
- Flags
[ Example ]
- Index Entry
- Index Entry 항목들
- File Reference Address for Filename
- Length of Index Entry
- Length of $FILE_NAME
- Flags
- 0x01 -> 자식 노드 있음
- 0x02 -> 마지막 노드임(End of Node)
- $FILE_NAME
- VCN of child node in $INDEX_ALLOCATION
$INDEX_ALLOCATION
[ 01: Non-Resident (Header의 길이는 4줄) ]
[INDEX와 FILE내용]
No comments:
Post a Comment