FCNS_PF

FCNS_PFはWindowsのプリフェッチファイル(pf)をカービングおよびパースするEnScriptです。

FCNS PF 01

使い方

Caseを作成もしくはオープン後、調査対象を追加してから実行します。メニュー/オプションの内容は以下の通りです。

  • Target: パース/カービング対象のファイル/オブジェクトの選択
    • Selected: ブルーチェックしたファイル/オブジェクト
    • Other - *.pf, $LogFile, pagefile.sys, Unallocated Clusters, VSS (experimental): チェックボックスで選択
  • Filtering Option: パース/カービング時の挙動調節
    • Min Size/Max Size: カービングするファイルの最小/最大サイズをKB単位で指定
    • Search only starting position of each sector: 各セクタの先頭からはじまるPFパターンのみを探索
  • Export: パース/カービング結果の出力場所を指定
    • LEF File: カービングしたファイルをLEFとして出力する場所/ファイル名を指定
    • TSV File: カービングしたファイルに関するメタデータの出力場所/ファイル名を指定

ダウンロード

FCNS_PF_0.8.EnPack (SHA1: 164136174e6473178b96ed60a689441ef94843ee)

ライセンス

個人、商用を問わず自由に利用することができますが、本ツールの利用により生じた問題については責任を負いかねます。EnPack形式で公開していますがEnScript形式をご希望の方はお問合せください。

動作環境

EnCase 7.x

背景

Windows プリフェッチファイルにはアプリケーションの起動を高速化するための情報が含まれており、解析することにより実行日時、実行回数、読み込むファイル等の情報を得ることができます。

プリフェッチファイルをパースするツールはオープンソースを含め複数ありますが、未割当領域内のカービングやパースを考慮したツールが少ない状況であることから、本EnScriptを実装しました。

特徴

FCNS_PFは以下のプリフェッチファイルのヘッダシグネチャパターンを探索します。

\x11\x00\x00\x00\x53\x43\x43\x41 // XP/2003
\x17\x00\x00\x00\x53\x43\x43\x41 // Vista/7
\x1a\x00\x00\x00\x53\x43\x43\x41 // 8.1

プリフェッチファイル内のオフセット12-15にはサイズ情報が格納されていることから、FCNS_PFは一致したパターンを発見するとサイズ情報を読み取りカービングするサイズと判断します。現存しないプリフェッチファイルが連続するクラスタ上に保存されていなかった場合は正しくカービングできません。

実行時に指定したLEFにはカービングしたファイル単位で格納し、TSVにはカービングしたプリフェッチファイルのパース結果を記録します。

FCNS PF 02

Name項目には、プリフェッチしているアプリケーションのフルパスが判明すればフルパスを含めた情報を表示し、判明しなければ実行ファイル名のみを表示します。

プリフェッチファイル名の規則は"実行ファイル名-ハッシュ.pf"であり、ハッシュは実行ファイルのフルパスや実行時のオプション、パラメータ情報から算出されています。実行ファイル名やハッシュ情報はプリフェッチファイル内にも格納されており、カービングした場合にもこれらの情報を得ることができます。

また、プリフェッチファイルにはアプリケーション実行時に読み込んだファイルのフルパス情報も格納されていて、通常は自身のプログラムファイルのフルパス情報も含まれます。FCNS_PFは読み込んだファイルのフルパス情報の中に実行ファイル名に一致するものがあれば、そのパスが正当であると判断します。

フルパスからハッシュ値の算出、格納されているハッシュ値と一致するかの確認、読み込んだファイル情報の表示、読み込んだフォルダ情報の表示、実行上のボリューム情報の表示等はFCNS_PFでは行いません。このような情報が必要な場合はFCNS_PFでカービング+別のツールでパースという使い方を想定しています。

プリフェッチファイルはアプリケーション実行毎に更新されます。また、OS毎にプリフェッチファイルの上限数が決まっており、上限に達すると更新頻度の低いアプリケーションのプリフェッチファイルは削除されていきます。このような挙動をとっているため、未割当領域やpagefile.sysには過去のプリフェッチファイル情報が残っている可能性があり、調査すべき箇所といえます。

参考情報

Prefetch - ForensicsWiki
http://www.forensicswiki.org/wiki/Prefetch

更新情報

2015/04/19

Target - Otherの対象にVSSを追加しました。ただし、VSSの構造をパースしていないためカービング結果は不完全になる可能性が高いです。VSS内でカービングできたPFが見つかった場合は、再度VSSをパースした状態でPFを確認することをお勧めします。また、これまではPCに設定されているタイムゾーンにあわせていましたが、証拠ファイルに設定したタイムゾーンにあわせて出力するようにしました。