LNKファイルのProperty Store構造を確認します。
サンプルJPEGファイルを準備します。このJPEGファイルはEXIF情報を含んでいます。
サンプルJPEGファイルのショートカットを作成します。
作成したショートカットファイルを LEcmd でパースし、Property store data blockを確認します。Property Store dataがLNKファイル内に存在している事を確認できます。
LNKファイル内の「The metadata property store data block」を確認してみます。
シグネチャ0xa0000009をハイライトしています。
最初のserialized property storageは、245バイトあります。
Windows Property Store formatを参考し、パースしてみます。一部不完全な結果になっています。
F5 00 00 00 Size of the serialized property storage ⇒ 245
31 53 50 53 "1SPS" ⇒ Version
A1 1D B8 14 35 01 31 4D 96 D9 6C BF C9 67 1A 99 ⇒Format class (or property set) identifier GUID ⇒ 14b81da1-0135-4d31-96d9-6cbfc9671a99
25 00 00 00 ⇒ 37 (長さ)
0F 01 00 00 ⇒ 271 ⇒ Manufacturer of camera
00 Reserved
1F 00 00 00 ⇒ 31 (Property value type?)
0A 00 00 00 ⇒ 10 (文字列長?)
500061006E00610073006F006E00690063000000 ⇒ Panasonic
15 00 00 00 ⇒ 21 (長さ)
9A 82 00 00⇒ 33434 ⇒ Exposure Time ?
00 Reserved
<4/2追記>
サンプルのLNKファイルを、plaso-20180127でパースした結果が下記です。Shell Itemはパースされていますが、Property Soreはパースされません。
参考URL:
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa965725(v=vs.85).aspx
http://www.classicshell.net/forum/viewtopic.php?f=13&t=7959
libfole/OLE definitions.asciidoc at master · libyal/libfole · GitHub