0, 8, 12Давайте по порядку, но будет много буков :)
$MFT - это, по сути, сердце NTFS, так как содержит информацию обо всех файлах и директориях в системе. Каждый файл или директория имеет как минимум одну запись в MFT-таблице по умолчанию размером 1 КБ (1024 байт) и у каждой есть структура: заголовок самой MFT-записи, далее идут атрибуты со своими заголовками, и оставшееся неиспользуемое пространство. Основных атрибутов насчитывается порядка 16, все они начинаются со знака $. В данном контексте это число сейчас непринципиально, главное понимать, что не все из них обязательно должны присутствовать в одной MFT-записи, или наоборот, на каждую запись может быть несколько идентичных типов атрибутов
Ну и тут мы подошли к самому интересному. Вопрос:
Сколько временных меток может содержаться в одной MFT-записи, не учитывая атрибуты $I30?
Судя по тому, что вариант с цифрой 8 все-таки в лидерах, тут особо объяснять не нужно. Речь идет о $STANDART_INFORMATION ($SI, значение 0х10) и $FILE_NAME ($FN, 0х30). В них хранятся не только временные метки, тем не менее, в каждом из них имеем по 4 таймстампа
M (Modify) - изменение содержимого файла,
A (Access) - доступ,
C (Change) - изменение метаданных файла,
B (Birth) - создание файла,
и есть они почти у каждой записи. Необходимо знать принципиальную разницу этих атрибутов, так как это - основополагающий момент при криминалистическом анализе, то есть программа минимум. Дальше начинаются нюансы
Как было сказано ранее, атрибутов у каждой записи может быть много (2^16, если хотите), поэтому одной записи может не хватать. В таком случае, чтобы хранить все, выделяется несколько записей, и тогда первая считается базовой, а остальные -
Далее. Возможно, вы замечали, что иногда у файлов их имя отображается как EXAMPL~1.TXT, и это тоже неспроста. Если у файла длинное имя, например, "Example of too long file name.txt", то для обратной совместимости с DOS и хранения как длинного, так и короткого имени файла, по умолчанию будет создано два атрибута $FN (так как именно $FN хранит имя файла). Соответственно, + еще четверка временных меток. 12, получается
Нюансов, на самом деле, и правда много. Например, если задать вопрос, сколько временных меток в целом можно найти у одного файла в NTFS, ответ будет несколько иным, и насчитываться их может и 12, и 16, и даже больше. Но это уже другая история
Ах да, небольшая бонусная часть. Если вы парсите $MFT каким-нибудь MFTECmd, можно столкнуться с тем, что часть временных меток пустует в табличке после парсинга. Это происходит не потому, что их нет, а потому, что множество меток идентичны, и чтобы не перегружать и без того сложную структуру, Эрик убрал в выводе по умолчанию абсолютные дубли (вернуть можно, добавив отдельный флаг к команде). Ну и всегда можно перепроверить себя, например, через istat