@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

SANS ポスター:Windows Artifact Analysis(24) Jump Lists

Windows 7 の Jump Lists ですが、AutomaticDestinations フォルダ配下にあるファイルは [MS-CFB] Compound File Binary File Format の構造になっています。MS-CFB についてはマイクロソフトからフォーマットに関する資料が提供されています。

[MS-CFB]: Compound File Binary File Format
http://msdn.microsoft.com/en-us/library/dd942138.aspx

MS-CFB の Page 16 から Compound File Header 構造に関する説明が開始されています。MS-CFB ファイルの特徴としては、ヘッダシグネチャの 8バイトが以下の状況になっている点にあります。 

D0 CF 11 E0 A1 B1 1A E1

  実際の 89b0d939f117f75c.automaticDestinations-ms ファイルのデータを見ながら資料に従いパースしてみたいと思います。ファイルの先頭部分51byteのヘッダが下記になります。

D0 CF 11 E0 A1 B1 1A E1 Header Signature(8byte)
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Header CLSID(16byte)
3E 00 Minor Version 0x003E(2byte)
03 00 Major Version 0x0003 (version 3) (2byte)
FE FF Byte Order (MUST be set to 0xFFFE) (2byte)
09 00 Sector Shift (MUST be set to 0x0009, or 0x000c)(2byte)
06 00 Mini Sector Shift (MUST be set to 0x0006 = 64)(2byte)
00 00 00 00 00 00 Reserved (6byte)
00 00 00 00 Number of Directory Sectors(4byte)
01 00 00 00 Number of FAT Sectors(4byte)
01 00 00 00 First Directory Sector Location(4byte)
00 00 00 00 Transaction Signature Number(4byte)
00 10 00 00 Mini Stream Cutoff Size(4byte)
02 00 00 00 First Mini FAT Sector Location(4byte)
01 00 00 00 Number of Mini FAT Sectors(4byte)
FE FF FF FF First DIFAT Sector Location(4byte)
00 00 00 00 Number of DIFAT Sectors(4byte)

オフセット76から436byte:DIFAT (436 bytes)
00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
<以下 FF FF が続く>

Compound File Headerの次のデータとしては、Sector 0 が続く形になり、FAT のデータが出てきます。
上記 DIFAT データの先頭 4byte はFAT sector location という事ですので、ゼロを示している事になります。(Page 12)

DIFAT は 4byte 長で、436byte の範囲内で109個のFAT sector locationを管理しています。