SANS ポスター:Windows Artifact Analysis(30) Jump Lists
Jump Listsファイルの内部では、データとしてMS-SHLINK構造でデータが保存されていますが、ShellLinkHeader のオフセット 20 からの 4byte LinkFlags を確認する事で LinkInfo が存在するか確認できます。
下記は ShellLinkHeader の 76byte 分ですが、LinkFlags は 83 00 00 00 になっている事が分かります。
4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00
00 00 00 46 83 00 00 00 20 20 00 00 A7 CA 99 AF
03 03 CC 02 35 81 7D 25 19 70 CF 02 35 81 7D 25
19 70 CF 02 C8 0D 00 00 00 00 00 00 01 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 36 00 14 00
LinkFlags が 83 00 00 00 の場合、1000 0011 ですので、0と1と7のビットが立っていますので、フラグとしてはA,B,Hが該当します。MS-SHLINK の Page 11 によると、それぞれ以下のフラグとなります。
A:HasLinkTargetIDList
B:HasLinkInfo
H:IsUnicode
このヘッダ内の LinkFlags フラグ値から HasLinkInfo が存在している事がわかりますので、HasLinkTargetIDList に続いて HasLinkInfo 構造を確認していく事になります。
ShellLinkHeader
↓
HasLinkTargetIDList(フラグAが立っている)
↓
HasLinkInfo(フラグBが立っている)
LinkInfo構造は MS-SHLINK の Page 15 から構造が説明されています。