Интерпретация временных меток IE9 ltime & htime localStorage
Вот пример XML-файла из файла IE9 localStorage:
<root>
<item name="1264474612:page_insights:latestversion"
value="6"
ltime="1024039440"
htime="30244985" />
</root>
Я пытаюсь понять, как интерпретировать такие записи, включая значения ltime и htime. Я выяснил из исследований, что это связано с IE9 localStorage и происходит из %userprofile%\AppData\Local\Microsoft\Internet Explorer\DOMStore\
,
Любая помощь приветствуется.
2 ответа
ltime
а также htime
является частью 64-разрядного временного значения, где одно - более низкое, а другое - более высокое 32-разрядное значение.
Двумя наиболее часто используемыми 64-битными форматами времени являются 64-битная версия времени Unix (POSIX) и Windows FILETIME (только 64-битная версия).
- Время POSIX - это количество секунд с 1 января 1970 года в UTC.
- Windows FILETIME - это количество наносекунд с 1 января 1601 года в UTC.
Используя оба ltime
а также htime
, чтобы получить 64-битное значение, каждое должно быть сначала преобразовано в шестнадцатеричное.
ltime = 1024039440 (decimal) = 0x3d099a10 (hexadecimal)
htime = 30244985 (decimal) = 0x01cd8079 (hexadecimal)
value = (htime x 0x100000000) + ltime
= (0x01cd8079 x 0x100000000) + 0x3d099a10
= 0x01cd807900000000 + 0x3d099a10
= 0x01cd80793d099a10 (hexadecimal)
= 129901222467050000 (decimal)
Если вышеуказанный результат рассчитывается с использованием формата FILETIME и POSIX, время FILETIME будет 2012-08-22, 08:17:26.705
время POSIX будет 4116407840-06-22, 09:53:20
, Таким образом, более вероятно, что формат FILETIME используется для метки времени, так как время POSIX прошло намного позже текущего года (2012).
Если вы ищете программу для декодирования этих значений, посмотрите DCode.
http://www.digital-detective.co.uk/images/screenshots/Dcode.png
Вы бы выбрали значение Windows: Cookie Date (Lo Value, Hi Value)
и введите цифры, такие как 1024039440,30244985
,
С UTC в качестве часового пояса эти значения интерпретируются как: Wed, 22 August 2012 15:17:26 UTC