Inode | Имя файла | ОС | Описание |
---|---|---|---|
0 | $MFT | Любая | Главная файловая таблица (Master File Table, MFT) |
1 | $MFTMirr | Любая | Резервная копия первых четырех элементов MFT |
2 | $LogFile | Любая | Журнал транзакций (transactional logging file) |
3 | $Volume | Любая | Серийный номер, время создания, флаг не сброшенного кэша (dirty flag) тома |
4 | $AttrDef | Любая | Определение атрибутов |
5 | . (точка) | Любая | Корневой каталог (root directory) тома |
6 | $Bitmap | Любая | Карта свободного/занятого пространства |
7 | $Boot | Любая | Загрузочная запись (boot record) тома |
8 | $BadClus | Любая | Список плохих кластеров (bad clusters) тома |
9 | $Quota | Windows NT | Информация о квотах (quota information) |
9 | $Secure | Windows 2000 | Использованные дескрипторы безопасности (security descriptors) |
10 | $UpCase | Любая | Таблица заглавных символов (uppercase characters) для трансляции имен |
11 | $Extend | Windows 2000 | Каталоги: $ObjId , $Quota , $Reparse , $UsnJrnl |
12-15 | не используется | Любая | Помечены как использованные, но в действительности пустые |
16-23 | не используется | Любая | Помечены как неиспользуемые |
Любой | $ObjId | Windows 2000 | Уникальные идентификаторы каждого файла |
Любой | $Quota | Windows 2000 | Информация о квотах (quota information) |
Любой | $Reparse | Windows 2000 | Информация о точке передачи (reparse point) |
Любой | $UsnJrnl | Windows 2000 | Журнал шифрованной файловой системы (journaling of encryption) |
>24 | Пользовательский файл | Любая | Обычные файлы |
>24 | Пользовательский каталог | Любая | Обычные каталоги |
Практический пример
Рассказ о файловой системе NTFS был бы неполным без практической иллюстрации техники разбора файловой записи вручную. До сих пор мы витали в облаках теоретической абстракции. Пора спускаться на грешную землю.
Воспользовавшись любым дисковым редактором, например, Disk Probe, попробуем декодировать одну файловую запись вручную. Найдем сектор, содержащий сигнатуру FILE
в его начале (не обязательно брать первый встретившийся сектор). Он может выглядеть, например, как в листинге 6.4.
Листинг 6.4. Ручное декодирование файловой записи (разные атрибуты выделены разным цветом)
: 00 01 02 03 04 05 06 07 | 08 09 0A 0B 0C 0D 0E 0F
00000000: 46 49 4C 45 2A 00 03 00 | 60 79 1A 04 02 00 00 00 FILE*...`y......
00000010: 01 00 01 00 30 00 01 00 | 50 01 00 00 00 04 00 00 ....0...P.......
00000020: 00 00 00 00 00 00 00 00 | 04 00 03 00 00 00 00 00 ................
00000030: 10 00 00 00 60 00 00 00 | 00 00 00 00 00 00 00 00 ................
00000040: 48 00 00 00 18 00 00 00 | B0 D5 C9 2F C6 0B C4 01 H.......░╒╔/╞.─.
00000050: E0 5A B3 7B A9 FA C3 01 | 90 90 F1 2F C6 0B C4 01 рZ│{й·├.PPё/╞.─.
00000060: 50 7F BC FE C8 0B C4 01 | 20 00 00 00 00 00 00 00 P⌂╝■╚.─. .......
00000070: 00 00 00 00 00 00 00 00 | 00 00 00 00 05 01 00 00 ................
00000080: 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 ................
00000090: 30 00 00 00 70 00 00 00 | 00 00 00 00 00 00 02 00 0...p...........