2016-07-21 3 views
0

NTFS 속성 유형에 대해 읽었으며 $ FILE_NAME 속성 구조가 있습니다. 여기에 있습니다 :

Offset Size Description 
~  ~ Standard Attribute Header 
0x00 8 File reference to the parent directory. 
0x08 8 C Time - File Creation 
0x10 8 A Time - File Altered 
0x18 8 M Time - MFT Changed 
0x20 8 R Time - File Read 
0x28 8 Allocated size of the file 
0x30 8 Real size of the file 
0x38 4 Flags, e.g. Directory, compressed, hidden 
0x3c 4 Used by EAs and Reparse 
0x40 1 Filename length in characters (L) 
0x41 1 Filename namespace 
0x42 2L File name in Unicode (not null terminated) 

오프셋 0x41에서 "파일 이름 공간"이란 무엇입니까? 내가 생각하는 네임 스페이스에 대해서는 조금 알고 있습니다. 어떻게 1 바이트로 저장할 수 있습니까? 누가 이걸 해결할 수 있니? 고맙습니다.

답변

4

파일 이름, 길이, 허용되는 문자 등의 "특성"을 설명합니다. C++/C# 등의 네임 스페이스와 같은 "문자열"자체는 아닙니다.

저는 here 문서를 발견했습니다. 그 중 일부는 솔직하게 그 타당성을 알지 못했습니다.

어쨌든,이 같은 네임 스페이스를 설명합니다 (그것은 아주 분명하게하는 챕터 13.2를 참조하십시오.) :

0 : POSIX

이 최대 규모의 네임 스페이스입니다. 대/소문자를 구분하며 은 NULL (0) 및 슬래시 '/'을 제외한 모든 유니 코드 문자를 허용합니다. 최대 이름 길이는 255 자입니다. N.B. 문자가 있습니다 (예 : Colon ':', NTFS에서는 유효하지만 Windows에서는 을 사용하면 안됩니다.

1에서 Win32

는 Win32를 POSIX 공간의 부분 집합이며, 대소 문자를 구분한다. '' '*' '/' ':' '<' '>' '을 제외한 모든 유니 코드 문자 을 사용합니다. '\' '|' '.'NB 이름은 점으로 끝나는, 또는 공간 '수'

2 :. DOS

DOS는, 가 큰 공간보다 단지 8 비트 대문자를 허용는 Win32 이름 공간의 부분 집합이다 '' , 및 제외 : '' '*' '+' ',' '/' ':' '; '<' '=' '>' '?' '\'. N.B. 이름 은 1 ~ 8 자, '.', 1 ~ 3 자의 패턴과 일치해야합니다.

3 : Win32에서 & DOS는

이 네임 스페이스는 는 Win32와 DOS 파일 이름이 모두 동일하며, 따라서 이 하나의 파일 이름 레코드에 저장되어있는 것을 의미한다.

그래서 필드는 사용중인 각각의 네임 스페이스를 식별하는 번호를 포함하기 때문에 1 바이트 일 수 있습니다.

+0

대단히 감사합니다! –

+0

«솔직히 그 유효성에 대한 아이디어가 없습니다»실제로 유효합니다. NTFS 문서는'ntfs-3g' 리눅스 드라이버 작성자에 의해 작성되었으며 Brian Carrier의 [* Forensic File System Analysis *] (http://www.digital-evidence.org/fsfa/)에서 광범위하게 인용되었습니다. . –

+0

@AndreaLazzarotto 지적 해 주셔서 감사합니다. –