LNKファイルのShell item構造を確認します。
USBメモリ上にある、Example.jpgを参照し、RecentフォルダにLNKファイルを生成します。
Windows Shortcut File format specification を参考に、LNKファイルのFile headerを確認します。オフセット20からの4バイトがData flagsとなっています。
Data flags ⇒ 0x00 20 00 93
0x00000001 HasTargetIDList
0x00000002 HasLinkInfo
0x00000010 HasWorkingDir
0x00000080 IsUnicode
0x00200000 DisableKnownFolderTracking
フラグHasTargetIDListのビットがONになっています。このフラグは、[MS-SHLLINK]: Shell Link (.LNK) Binary File Format では下記記述となっています。
The shell link is saved with an item ID list (IDList). If this bit is set, a
LinkTargetIDList structure (section 2.2) MUST follow the ShellLinkHeader.
If this bit is not set, this structure MUST NOT be present.
ShellLinkHeaderの続きに、LinkTargetIDList structureが存在しています。オフセット76からの2バイトを確認します。IDListSize (2 bytes)は0x013D⇒317バイトとなっています。
ItemIDList (variable)とTerminalID (2 bytes)の合計317バイトは、下記でハイライトした範囲となります。
データ内容を、Windows Shell Item format specificationを参考にパースしてみます。
Itemの中に、タイムスタンプ情報やNTFS file referenceを確認できます。
14 00⇒20 byte
1F Class type indicator ⇒ Root folder shell item
50 Sort index
E04FD020EA3A6910A2D808002B30309D ⇒ GUID ⇒ My Computer (Computer)
19 00⇒25 byte
2F Class type indicator ⇒Volume shell item
453A5C00000000000000000000000000000000000000 ⇒E:\
56 00⇒86 byte
31 Class type indicator ⇒CLSID_ShellFSFolder ⇒File entry shell item 0x01 ⇒ Is directory
00 ⇒ Unknown (Empty value)
00000000 File size
774C4DB8 Last modification date and time Contains a FAT date and time in UTC
1000 File attribute flags ⇒ FILE_ATTRIBUTE_DIRECTORY
466F6C6465723100 ⇒ Folder1
4000 Extension block size ⇒ 64
0900 Extension version
0400EFBE Extension signature ⇒ File entry extension block 0xbeef0004
774C47B8 Creation date and time Contains a FAT date and time in UTC
774C4DB8 Last access date and time Contains a FAT date and time in UTC
2E00 ⇒ Windows 8.1, 10
0000
2B00000000000100 ⇒ NTFS file reference
0000000000000000
0000
00000000
1D907D00
46006F006C006400650072003100 ⇒ Folder1
0000
1600 ⇒ First extension block version offset
56 00⇒86 byte
31 Class type indicator ⇒CLSID_ShellFSFolder ⇒ 0x01 ⇒ Is directory
0000000000774C4CB81000466F6C6465723200400009000400EFBE774C4CB8774C4CB82E0000002C000000000001000000000000000000000000000000A81F930046006F006C00640065007200320000001600
62 00⇒98 byte
32 Class type indicator ⇒CLSID_ShellFSFolder ⇒ 0x02 ⇒ Is file
0000A03F00774C27B820006578616D706C652E6A706700480009000400EFBE774C37B8774C37B82E00000027000000000001000000000000000000000000000000CBF826016500780061006D0070006C0065002E006A007000670000001A00
LEcmdツールを使い、example.jpg.lnkファイルをパースします。
Target ID informationの項目を確認します。
参考URL:
https://forensicswiki.org/wiki/LNK