(MS-SHLLINK) - Shortcut To A File
(MS-SHLLINK) - Shortcut To A File
The following is the hexadecimal representation of the contents of the shell link.
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0000 4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00
0010 00 00 00 46 9B 00 08 00 20 00 00 00 D0 E9 EE F2
0020 15 15 C9 01 D0 E9 EE F2 15 15 C9 01 D0 E9 EE F2
0030 15 15 C9 01 00 00 00 00 00 00 00 00 01 00 00 00
0040 00 00 00 00 00 00 00 00 00 00 00 00 BD 00 14 00
0050 1F 50 E0 4F D0 20 EA 3A 69 10 A2 D8 08 00 2B 30
0060 30 9D 19 00 2F 43 3A 5C 00 00 00 00 00 00 00 00
0070 00 00 00 00 00 00 00 00 00 00 00 46 00 31 00 00
0080 00 00 00 2C 39 69 A3 10 00 74 65 73 74 00 00 32
0090 00 07 00 04 00 EF BE 2C 39 65 A3 2C 39 69 A3 26
00A0 00 00 00 03 1E 00 00 00 00 F5 1E 00 00 00 00 00
00B0 00 00 00 00 00 74 00 65 00 73 00 74 00 00 00 14
00C0 00 48 00 32 00 00 00 00 00 2C 39 69 A3 20 00 61
00D0 2E 74 78 74 00 34 00 07 00 04 00 EF BE 2C 39 69
00E0 A3 2C 39 69 A3 26 00 00 00 2D 6E 00 00 00 00 96
00F0 01 00 00 00 00 00 00 00 00 00 00 61 00 2E 00 74
0100 00 78 00 74 00 00 00 14 00 00 00 3C 00 00 00 1C
0110 00 00 00 01 00 00 00 1C 00 00 00 2D 00 00 00 00
0120 00 00 00 3B 00 00 00 11 00 00 00 03 00 00 00 81
https://msdn.microsoft.com/en-us/library/dd871375.aspx 1/4
9/17/2018 [MS-SHLLINK]: Shortcut to a File
0130 8A 7A 30 10 00 00 00 00 43 3A 5C 74 65 73 74 5C
0140 61 2E 74 78 74 00 00 07 00 2E 00 5C 00 61 00 2E
0150 00 74 00 78 00 74 00 07 00 43 00 3A 00 5C 00 74
0160 00 65 00 73 00 74 00 60 00 00 00 03 00 00 A0 58
0170 00 00 00 00 00 00 00 63 68 72 69 73 2D 78 70 73
0180 00 00 00 00 00 00 00 40 78 C7 94 47 FA C7 46 B3
0190 56 5C 2D C6 B6 D1 15 EC 46 CD 7B 22 7F DD 11 94
01A0 99 00 13 72 16 87 4A 40 78 C7 94 47 FA C7 46 B3
01B0 56 5C 2D C6 B6 D1 15 EC 46 CD 7B 22 7F DD 11 94
01C0 99 00 13 72 16 87 4A 00 00 00 00
LinkFlags: (4 bytes, offset 0x0014), 0x0008009B means the following LinkFlags (section 2.1.1) are set:
HasLinkTargetIDList
HasLinkInfo
HasRelativePath
HasWorkingDir
IsUnicode
EnableTargetMetadata
FileAttributes: (4 bytes, offset 0x0018), 0x00000020, means the following FileAttributesFlags (section 2.1.2) are set:
FILE_ATTRIBUTE_ARCHIVE
https://msdn.microsoft.com/en-us/library/dd871375.aspx 2/4
9/17/2018 [MS-SHLLINK]: Shortcut to a File
IDList: (189 bytes, offset 0x004E) an IDList structure (section 2.2.1) follows:
ItemIDList: (187 bytes, offset 0x004E), ItemID structures (section 2.2.2) follow:
TerminalID: (2 bytes, offset 0x0109), 0x0000 indicates the end of the IDList.
LinkInfoHeaderSize: (4 bytes, offset 0x010F), 0x0000001C as specified in the LinkInfo structure definition.
LocalBasePathOffset: (4 bytes, offset 0x011B), 0x0000002D, references the character string "C:\test\a.txt".
CommonPathSuffixOffset: (4 bytes, offset 0x0123), 0x0000003B, references offset 0x00000146, the character
string "" (empty string).
VolumeID: (17 bytes, offset 0x0127), because VolumeIDAndLocalBasePath is set, a VolumeID structure
(section 2.3.1) follows:
https://msdn.microsoft.com/en-us/library/dd871375.aspx 3/4
9/17/2018 [MS-SHLLINK]: Shortcut to a File
VolumeIDSize: (4 bytes, offset 0x0127), 0x00000011 indicates the size of the VolumeID structure.
VolumeLabelOffset: (4 bytes, offset 0x0133), 0x00000010, indicates that Volume Label Offset Unicode is
not specified and references offset 0x0137 where the Volume Label is stored.
LocalBasePath: (14 bytes, offset 0x0138), because VolumeIDAndLocalBasePath is set, the character string
"c:\test\a.txt" is present.
Because HasRelativePath is set, the RELATIVE_PATH StringData structure (section 2.4) follows:
Because HasWorkingDir is set, the WORKING_DIR StringData structure (section 2.4) follows:
Extra data section: (100 bytes, offset 0x0167), an ExtraData structure (section 2.5) follows:
ExtraDataBlock (96 bytes, offset 0x0167), the TrackerDataBlock structure (section 2.5.10) follows:
BlockSignature: (4 bytes, offset 0x016B), 0xA000003, which identifies the TrackerDataBlock structure
(section 2.5.10).
Length: (4 bytes, offset 0x016F), 0x00000058, the required minimum size of this extra data block.
MachineID: (16 bytes, offset 0x0177), the character string "chris-xps", with zero fill.
TerminalBlock: (4 bytes, offset 0x01C7), 0x00000000 indicates the end of the extra data section.
© 2018 Microsoft
https://msdn.microsoft.com/en-us/library/dd871375.aspx 4/4