SANSからの練習問題を試す ファイルの取り出し (8)
Procexedump プラグインで取り出した EXE ファイルを PeStudio で更に確認してみたいと思います。
PEヘッダのFile HeaderにはTimeDateStamp値があり日付情報が含まれています、この値まで含めた正規表現パターンを作成して APT.IMG に検索してみます。
\x4D\x5A\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xFF\xFF.*\x50\x45\x00\x00\x4C\x01\x04\x00\x5A\xC3\x49\x49
RAW検索した結果、3件ヒットする事が分かりました。APT.IMG ファイルには PID 796 のプロセスイメージのシグネチャが 3件はあるという事だと思いますので、これをリカバリする事を考えてみます。
問題は切り出すサイズという事になりますが、まずはProcexedumpで取り出したのと同じサイズ 625,664 バイトを使いイメージからファイルを切り出してみます。約 611kb と少し大きめですので、期待される結果は期待できないですが。
切り出した 3件のファイルの MD5 ハッシュを取ってみますがやはり一致はしません、これは想定通りなのですが、問題はこれらのファイルは、どの辺りまで同じデータなのか?という事ですね。
ファイル 3件が共に一致するのは、1024 byte までの領域で、それ以降のデータは 2ファイルは 4096 byte まで一致しました。
4096byte まで一致している二つのファイルは、Procexedump で取り出したバイナリと比較しても 4096byte までは一致する結果でした。メモリのページサイズから考えると当然という結果なのでしょうか。
4096byte 以降は目視で確認した雰囲気ではかなり異なってますので、この状態で何かしら別のツールで調査したとしても有意な結果を得られるのかは疑問がありますが、皆さんはどうされているのでしょうか?
ところで、PEヘッダ内の TimeDateStamp 値なのですが、MSDN の記述によると
This field holds the number of seconds since December 31st, 1969, at 4:00 P.M.
となってますが、これ簡単にデコードするツールとかあるんでしょうか?Dcodeを試してみたのですが駄目っぽい結果でした。TimeLoadならいけたりしますかね...
Peering Inside the PE: A Tour of the Win32 Portable Executable File Format
追記:
ZakiさんからUnix epochという事を教えていただいたので確認。
16進数を10進数に変換すると 1226310035 になりますので、これを D Codeで変換してみます。PeStudio は JST で表示していますので、D Code 側も +9 ずらしています。
ということで、答えを得ることができました、ありがとうございます!!