index.datの内容について
windows7でindex.datを調べています。
履歴の日付の項目と思われるところがありまして、その値が
6b62fbe385e1cc01・・・・(1)
でした。
色々調べてみると、これはwindowstimeというもの?のようで、
変換が必要みたいでした。
それでDCode(www.digital-detective.co.uk)というソフトを使用してみました。
DCodeの設定ですが、DecodeFormatをWindows:64bit Hex Value Little Endian
に設定すると
Thu, 02 February 2012 17:37:25 +0900・・・・(2)
と、自分がアクセスした日が出力されたように感じます。(おおよそですが)
そこで何点か質問があります。
1、このフォーマット(windowstime)とは一体なんですか?
(マイクロソフトが考案したwindwosの独自フォーマットと言ってしまえば、それまでですが・・)
2、計算方法がわからなかったので逆から考えることにして、
(2)をunixtimeに変えてみたら1328171845・・・・(3)
になりました。
つまり1970年1月1日00:00:00(UTC)に(3)秒を足せば良いわけですよね?
しかし(1)からどう計算しても(3)になりません。
unixtimeとは切り離して考えた方が良いのでしょうか?
「前記のソフト使えばいいじゃん。」
ではなく、計算方法が知りたいです。
バイナリを見たり、2進数化もしてみましたが、どーしてもたどり着きません。
どなたか計算方法を教えてください。
3、できればperlでこの数値を変換するプログラムを考えたいのですが、効率が良い
プログラムの参考URLまたは64bit Hex Value Little Endianの理論(?)を使った
特殊なコードがperlに存在するなら、それを教えてもらえないでしょうか?
※お粗末な話ですが、当方あまり英語に自信がありません。調べた限りでは海外のURLには
いくつか参考になりそうなネタがあるようですが、うまく翻訳でできず意味もわかりかねます。
「ここを見ろ」的なご意見はご勘弁ください。
お礼
再度の回答ありがとうございました。 DLして使ってみます。