1

Я использую EnCase и Hex Editor для анализа виртуального диска.

EnCase говорит, что это шестнадцатеричное: 5FBF60C54F2CCF01

это дата / время (мм / дд / гг): 02/17/14 09:18:54 (PM)

Я успешно определил дату / время, но не могу сравниться с вышесказанным.

Если бы кто-то мог подтвердить, что EnCase верен и объяснить это мне, это было бы великолепно.

2 ответа2

0

Вы можете решить головоломку в WinDbg. Просто запустите любую программу и присоединитесь к ней.

Затем запишите ваши данные в память:

0:001> eq 7731000c  5FBF60C54F2CCF01

и интерпретировать это как ole32!FILETIME

0:001> dt ole32!FILETIME 7731000c  
 Feb 20 16:57:50 23464
   +0x000 dwLowDateTime    : 0x4f2ccf01
   +0x004 dwHighDateTime   : 0x5fbf60c5

Как видите, это далеко в будущем.

Однако вполне вероятно, что EnCase отображает значения побайтно, как записано на диске, поэтому у вас есть проблема LSB/MSB. Давайте введем данные побайтно:

0:001> eb 7731000c 5F BF 60 C5 4F 2C CF 01

Выведите в 64-битном формате, обратите внимание, что байты теперь в обратном порядке.

0:001> dq 7731000c  L1
7731000c  01cf2c4f`c560bf5f

Интерпретировать как FILETIME:

0:001> dt ole32!FILETIME 7731000c
 Feb 18 02:18:54 2014
   +0x000 dwLowDateTime    : 0xc560bf5f
   +0x004 dwHighDateTime   : 0x1cf2c4f

Не уверен, почему он выключен на несколько часов. Возможно, это проблема часового пояса.

0

Смотри сюда. ("Интерпретация временных меток NTFS", forensicfocus.com)

Временные метки файлов NTFS, согласно документации структуры данных «FILETIME», входящей в комплект средств разработки программного обеспечения Windows, представляют собой «64-разрядное значение, представляющее число интервалов в 100 наносекунд с 1 января 1601 года (UTC)».

Преобразование из этого внутреннего формата в формат, более подходящий для интерпретации человеком, выполняется системным вызовом Windows FileTimeToSystemTime (), который извлекает из данных метки времени год, месяц, день, часы, минуты, секунды и миллисекунды. На других платформах (например, Unix) или в программном обеспечении, которое намеренно не зависит от платформы (например, Perl или Java), требуются другие методы перевода.

Документация FileTimeToSystemTime (), а также практические тесты указывают, что значение FILETIME для перевода должно быть 0x7FFFFFFFFFFFFFFF или меньше. Это соответствует времени 30828-09-14 02:48:05.4775807.

(и т. д. и т. д.)

/edit: Хотя ваша дата будет в субботу 20 февраля 23464 года (без опечаток ). Возможно, ваш NTFS сломан?

(Вот калькулятор. Используйте настройку "filetime" и обязательно вводите свои числа в десятичной форме.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .