fteを実行すると、対象ファイルのパス情報(path)とタイムスタンプ(atime, mtime, ctime, crtime)の他にタイプ(type)
という項目を出力します。記録されている4つのタイムスタンプ値から、ファイルがどこで、どのようにして生成されたか、
最も妥当と判断した情報をtypeとして出力しています。
fteが扱う分類について以下に記載します。
FAT上で保持するタイムスタンプの精度に一致する場合です。
exFAT上で保持するタイムスタンプの精度に一致する場合です。
ctimeを除く3つのタイムスタンプ全てがUnix(POSIX)形式、すなわち秒未満の情報を持たない場合です。
Unix系ファイルシステム(Ext2/3やHFS+など)上のファイルをネットワーク経由で参照するとこのタイプになります。
ctimeはNTFS上の精度(100ナノ秒単位)でそれ以外の3つのタイムスタンプがDOS形式(2秒単位)の場合です。
アプリケーションによってはこの型を採用しているかもしれないため用意しました。実際にこのようなタイプで保存され
ている例はまだ見たことがありません。
mtimeがDOS形式(2秒単位)でそれ以外の3つのタイムスタンプはNTFS上の精度(100ナノ秒単位)の場合です。
普通にコピーするとmtimeは更新されませんので、FAT上にあるファイルをNTFS上にコピーした場合はこのタイプに
なります。
また、ZIPやLZHの仕様ではヘッダ情報として対象ファイルのmtimeをDOS形式で格納するように定められています。
圧縮時に対象ファイルのmtimeをDOS形式で取っておき、展開時にその形式(DOS)でmtimeをセットします。よって、
ZIPやLZHから展開されたファイルも大抵このタイプになります。
ただしZIPやLZHのヘッダは拡張版としてUnix(POSIX)やFILETIMEで保存できるようにもなっているため、最終的
には圧縮/展開に使用したツールの実装にも依存します。いくつかのツールの検証結果は
(http://www.ji2.co.jp/forensics/seminer/20091204/20091204_03.pdf)のスライド34に記載しています。
mtimeが10ミリ秒単位で、それ以外の3つのタイムスタンプはNTFS上の精度(100ナノ秒単位)の場合です。
exFAT上にあるファイルをNTFS上にコピーした場合はこのタイプになります。
ctimeを除く3つのタイムスタンプがSYSTEMTIME形式(ミリ秒単位)の場合です。
ツールによってはSYSTEMTIME形式で時間情報を扱います。調べた限りではChange File Time StampやFileTouchが
SYSTEMTIME形式で扱っていましたので、例えばこれらのタイムスタンプ変更ツールを使って変更されたファイルは
このタイプになります。
上記のいずれのタイプにも当てはまらない場合です。
他に役に立ちそうなタイプが見つかったら随時組込んでいきたいと思います。