Windows 7のUserAssistデータ
Windows 7のUserAssistデータ(バイナリ値)の構造が変ったということで、具体的にどんなバイナリデータになっているのかを参加者の皆さんで調べてみました。
まず、従来は 不明 4バイト+実行回数 4バイト+日時 8バイトの合計16バイトの構造だったわけですが、Windows 7 の UserAsssit*1 UserAssist では以下のような 72バイトで構成されたバイナリデータになっています。
00 00 00 00 09 00 00 00 0B 00 00 00 60 5B 03 00
00 00 80 BF 00 00 80 BF 00 00 80 BF 00 00 80 BF
00 00 80 BF 00 00 80 BF 00 00 80 BF 00 00 80 BF
00 00 80 BF 00 00 80 BF FF FF FF FF 8B C7 73 D2
A7 1F CA 01 00 00 00 00
とりあえず、わかりやすい値からいくと、先頭不明 4バイトの次の4バイト(青色)が、従来と同じくプログラムの実行回数が保存されているようです。
逆に後から 4バイトは不明でその前にある 8バイト(赤色)は64bit Windows 時刻になっているので、EnCase のブックマークからデコードするなどすれば実行日時を確認することができます。
*1:sが一個多いのをスターで突っ込まれたー
最大化・最小化のカウント?
実行回数 4バイトの次にある 4バイトが何か?ですが、id:ghetto2199説によるとアプリケーションのウインドウを最小化・最大化することで変化するということらしく、実際に地道に電卓アプリケーションを起動して、最小化・最大化を試してみた結果が以下です。
このバイナリ値は、レジストリへのアクセスを監視するのに、Sysinternals Suite のプロセスモニタ(Process Monitor)でフィルタを行いつつ、該当レジストリ値へ設定された値を順次確認していたものです。*1
アプリケーションの最小化・最大化を行うことで 35 → 36 → 37 → 38 と値(赤色)がカウントされていきます。(実行回数の部分はカウントが変化しない)
00 00 00 00 0F 00 00 00 35 00 00 00 68 AF 04 00
00 00 00 00 0F 00 00 00 35 00 00 00 24 B5 04 00
00 00 00 00 0F 00 00 00 36 00 00 00 24 B5 04 00
00 00 00 00 0F 00 00 00 36 00 00 00 F6 B9 04 00
00 00 00 00 0F 00 00 00 37 00 00 00 F6 B9 04 00
00 00 00 00 0F 00 00 00 37 00 00 00 DC C0 04 00
00 00 00 00 0F 00 00 00 38 00 00 00 DC C0 04 00
00 00 00 00 0F 00 00 00 38 00 00 00 6A C6 04 00
ただし、残り 4バイトもカウントがアップしていくのですが、これが何なのかは色々と議論があったのですがとりあえず謎なままです。
FNG03開催予定日
予定では9月19日(土)だったのですが、三周忌の法事があることが発覚したので9月26日(土)に予定を変更しようと考えています。
いまのところの予定は 09/26 NTFS-1, 10/03 INFO2, 10/17 LNK, 10/31 NTFS-2, 11/07 Registory-2 ですけど、あくまで予定ということで。