投稿fteを実行するとタブによってはtypeカラムにタイムスタンプの種類を出力します。atime)値から、ファイルがどこで、どのようにして生成されたか、最も妥当と判断した情報を出力しています。fteが扱う分類について以下に記載します。FATFAT上で保持するタイムスタンプの精度に一致する場合です。10ミリ秒単位exFATexFAT上で保持するタイムスタンプの精度に一致する場合です。2008ランタイムがインストールされている環境で動作します。条件を満たす環境ではfte.exeを実行するだけで起動しますが、エラーが出る場合は以下から必要なパッケージを入手してインストールする必要があります。アーティファクト(1)でも書いた通り、NTFSのフォルダ構造では$INDEX_ROOT属性と$INDEX_ALLOCATION属性を使います。$INDEX_ROOTはResidentな属性でありMFTエントリ内のみを保存場所に使いますが、$INDEX_ALLOCATION、いわゆるINDXレコードはNon-Residentな属性でありクラスタを割り当てます。図のように、ファイル/フォルダの作成、更新、削除の処理の組み合わせによっては、フォルダに相当するMFTエントリが上書きされてもINDXレコード使っていたクラスタは上書きされない場合があります。投稿INDXタブではNTFSのフォルダコンテンツのうち、INDXレコード($INDEX_ALLOCATION属性)をパースして結果を表示します。投稿fteのMFTタブではNTFS内の$MFTファイルを参照して各ファイル/フォルダのタイムスタンプをパースします。MFTエントリNTFSの先頭には$Bootファイルがあり、1クラスタのセクタ数や$MFTファイルの開始位置などの情報が格納されています。$MFTファイルは固定サイズのエントリで構成されており、原則1エントリで1つのファイル、フォルダ(以降オブジェクトと表現)のメタデータを管理します。各エントリの先頭は必ずシグネチャ"FILE"ではじまるヘッダ領域があり、その中にリンク数、フラグ(ファイル/フォルダ/未使用)、IDなどの情報が含まれます。ヘッダの後は属性情報で構成されており、様々な属性によって構造は様々です。投稿ObjectID(オブジェクトID)についてまとめています。ObjectIDの仕組みをご存じの方には目新しい情報は含まれていません。fteの実装は後半のfteの処理内容に書いています。ObjectIDの仕組みNTFSではMFTエントリの属性として、$OBJECT_ID(0x40)が定義されておりファイルに付与することができます。Trackingサービスで使われています。2000からデフォルトでONになっており、例えばあるファイルのショートカットを作成して、その後にファイルを移動しても、ObjectIDの紐付けによりショートカットはファイルの場所を追跡できます。このように、ObjectIDは基本的にショートカットファイル(拡張子lnk)が作成された時点でファイルとショートカットファイル内に付与されます。