OleCfParser(Parses OLE Compound Files (OLECF))を試してみたいと思います。OLE複合ファイルのタイムスタンプを取るという事ですので、いわゆるOffice 2003までの形式ファイル、doc,xls,ppt などがパースの対象になると思われます。
root@siftworkstation:/cases# log2timeline.py --parsers OleCf --output L2tcsv oletimeline.txt ./ole/
結果ファイルを確認してみます。予想されていた事かもしれませんが、タイトルなどプロパティ値については文字化けしているようですね。テストで使ったファイルは、プロパティ値の文字コードはShift_JISデータですので想定外なのでしょうね。
date,time,timezone,MACB,source,sourcetype,type,user,host,short,desc,version,filename,inode,notes,format,extra
07/22/2010,05:24:30,UTC,M...,OLECF,OLECF Item,Content Modification Time,-,-,Name: Root Entry,Name: Root Entry,2,./ole/001.doc,16384019,-,OleCfParser,size: 128
07/22/2010,05:24:00,UTC,....,OLECF,OLECF Summary Info,Document Last Printed Time,-,-,Title: �u’nŽY’n�Áƒ}ƒbƒ`ƒ“ƒO�¤’k‰ï�vŽQ‰ÁŽÒ•å�W Author: FUKUI Revision number: 22,Title: �u’nŽY’n�Áƒ}ƒbƒ`ƒ“ƒO�¤’k‰ï�vŽQ‰ÁŽÒ•å�W Author: FUKUI Template: Normal.dot Revision number: 22 Last saved by: FUKUI Number of pages: 1 Number of words: 8 Number of characters: 52 Application: Microsoft Office Word Security: 0,2,./ole/001.doc,16384019,-,OleCfParser,
07/15/2010,07:33:00,UTC,....,OLECF,OLECF Summary Info,Document Creation Time,-,-,Title: �u’nŽY’n�Áƒ}ƒbƒ`ƒ“ƒO�¤’k‰ï�vŽQ‰ÁŽÒ•å�W Author: FUKUI Revision number: 22,Title: �u’nŽY’n�Áƒ}ƒbƒ`ƒ“ƒO�¤’k‰ï�vŽQ‰ÁŽÒ•å�W Author: FUKUI Template: Normal.dot Revision number: 22 Last saved by: FUKUI Number of pages: 1 Number of words: 8 Number of characters: 52 Application: Microsoft Office Word Security: 0,2,./ole/001.doc,16384019,-,OleCfParser,
07/22/2010,05:24:00,UTC,....,OLECF,OLECF Summary Info,Document Last Save Time,-,-,Title: �u’nŽY’n�Áƒ}ƒbƒ`ƒ“ƒO�¤’k‰ï�vŽQ‰ÁŽÒ•å�W Author: FUKUI Revision number: 22,Title: �u’nŽY’n�Áƒ}ƒbƒ`ƒ“ƒO�¤’k‰ï�vŽQ‰ÁŽÒ•å�W Author: FUKUI Template: Normal.dot Revision number: 22 Last saved by: FUKUI Number of pages: 1 Number of words: 8 Number of characters: 52 Application: Microsoft Office Word Security: 0,2,./ole/001.doc,16384019,-,OleCfParser,
01/01/1601,00:00:00,UTC,....,OLECF,OLECF Document Summary Info,Creation Time,-,-,Company: •ŸˆäŒ§,Number of lines: 1 Number of paragraphs: 1 Company: •ŸˆäŒ§ Shared document: False Application version: 11.6408,2,./ole/001.doc,16384019,-,OleCfParser,number_of_characters_with_white_space: 59
このファイル(001.doc)をエクスプローラのプロパティからタイムスタンプを確認してみると以下の値になっています。
コンテンツの作成日時:2010/07/15 16:33
前回保存日時:2010/07/22 14:24
前回印刷日:2010/07/22 14:24
編集時間:02:07:00
タイムスタンプとしては 001.doc ファイルからは以下のタイムスタンプ値を取ってきていることがレコードから分かります。(いずれもUTCの為 +9 が必要)
Document Creation Time:07/15/2010,07:33:00
Document Last Save Time:07/22/2010,05:24:00
Document Last Printed Time:07/22/2010,05:24:00
Creation Time:01/01/1601,00:00:00
Content Modification Time:07/22/2010,05:24:30
ファイル名は日本語が含まれていても化けませんので、プロパティ値の文字化けを気にしなければ、タイムラインの生成という点では正しい値が取れていますので使えますね。
メタ(プロパティ)から値が取れないケースでは、値として 01/01/1601,00:00:00,UTC が出力されるようです。上記では Creation Time が取れていませんが、OLE の仕様を確認しないと何を取ろうとしていたのかちょっと分かりません。
ファイルの外側(ファイルシステムのタイムスタンプ)だけでなく、内側にあるタイムスタンプを使ってタイムラインを生成すると、見えていなかった流れが見えてくる可能性もありますね。
ps
プロパティ値の処理を多言語対応してくれるような学生さんいらっしゃないですかね?各国で使うCodePageが違うので、コード指定できるようになると日本以外のCJKな国で便利だと思いますが。