@port139 Blog

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

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 から構造が説明されています。