2016-07-21 18 views
0

Ich lese über die NTFS-Attributtypen und es kommt zu der $ FILE_NAME-Attributstruktur. Hier ist es:

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) 

Was ist "Dateiname Namespace" am Offset 0x41? Ich weiß ein wenig über Namensraum, denke ich. Wie kann es in nur 1 Byte gespeichert werden? Kann das jemand für mich klären? Vielen Dank.

Antwort

4

Es beschreibt die "Merkmale" eines Dateinamens, d. H. Länge, zulässige Zeichen, etc. Es ist kein "String" an sich (wie ein C++/C#/etc. Namespace).

Ich habe ein Dokument here gefunden, von dem ich ehrlich gesagt keine Ahnung von seiner Gültigkeit habe.

Aber wie auch immer, es beschreibt die Namensräume als solche (die es ganz offensichtlich macht, siehe Kapitel 13.2.):

0: POSIX

Dies ist der größte Namespace ist. Groß- und Kleinschreibung wird berücksichtigt, und ermöglicht alle Unicode-Zeichen außer NULL (0) und Schrägstrich '/'. Die maximale Länge des Namens beträgt 255 Zeichen. N.B. Es gibt einige Zeichen, z.B. Doppelpunkt ':', die in NTFS gültig sind, aber Windows nicht erlaubt Ihnen zu verwenden.

1: Win32

Win32 ist eine Teilmenge des POSIX Namespace und ist Groß- und Kleinschreibung. Es verwendet alle Unicode-Zeichen, außer: '"' '*' '/' ':' '<' '>'? ' '\' '|' NB Namen können nicht mit Punkt enden, oder Space ' '''

. 2: DOS

DOS ist eine Teilmenge des Win32-Namespace, so dass nur 8 Bit Großbuchstaben, größer ist als Space '' und mit Ausnahme von: '"' '*' '+' ',' '/' ':' ';' '<' '=' '>' '?' "\". N.B. Die Namen müssen mit dem folgenden Muster übereinstimmen: 1 bis 8 Zeichen, dann '.', Dann 1 zu 3 Zeichen.

3: Win32 & DOS

Dieser Namespace bedeutet, dass sowohl die Win32 und die DOS-Dateinamen sind identisch und daher ist in dieser einzelnen Dateinamen Datensatz gespeichert.

So kann das Feld ein Byte sein, weil es nur eine Zahl enthält, die den jeweiligen verwendeten Namespace identifiziert.

+0

Vielen Dank Herr! –

+0

«Ich habe ehrlich gesagt keine Ahnung von seiner Gültigkeit» Es ist in der Tat gültig. Das NTFS-Dokument wurde von den Autoren des 'ntfs-3g'-Linux-Treibers geschrieben und wird auch ausführlich in [* Forensic File System Analysis * von Brian Carrier] zitiert (http://www.digital-evidence.org/fsfa/). . –

+0

@AndreaLazzarotto Vielen Dank, dass Sie darauf hingewiesen haben. –