欢迎来到天天文库
浏览记录
ID:11658203
大小:115.00 KB
页数:10页
时间:2018-07-13
《windows快捷方式文件格式解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Windows快捷方式文件格式解析大家知道通过IShellLink接口可以得到快捷方式的各种属性。具体怎么做,网上有很多文章,这里就不介绍了。现在主要是分析一下快捷方式文件的格式,并且自己写一个解析程序。为了方便大家理解,解说完每个段后附上一个快捷方式对应部分的事例数据并附内容解说。这里以WindowsMediaPlayer在桌面上的快捷方式为例。一、文件的整体结构二、文件头文件头结构,参照下面表格:OffsetSize/TypeDescription0h1dword值常为0000004CH,为字符"L"4h16bytesGUID①14h1dwordFlags,用来
2、标识快捷方式文件中有哪些可选属性,后面有表单独解释每一位的意义。②18h1dword目标文件属性,后面解释。1ch1qword文件创建时间24h1qword文件修改时间2ch1qword文件最后一次访问时间34h1dword目标文件长度38h1dword自定义图标个数,3ch1dword目标文件执行时窗口显示方式:1、正常显示2、最小化3、最大化40h1dword热键44h2dword暂时还不清楚用途值常为0① 偏移14h开始的标志标示有哪些可选属性,见下表:Bit所在位为1时表示0有shellitemidlist1指向文件或文件夹,如果此位为0表示指向其他。2存在
3、描述字符串3存在相对路径4存在工作路径5存在命令行参数6存在自定义图标② 偏移18h开始的目标文件属性:Bit所在位为1时表示0快捷方式所指目标文件有只读属性1快捷方式所指目标文件有隐藏属性2快捷方式所指目标文件是系统文件3快捷方式所指目标是卷标4快捷方式所指目标是文件夹5快捷方式所指目标文件上次存档后被改变过6快捷方式所指目标文件被加密7快捷方式所指目标文件属性为一般8快捷方式所指目标文件为临时9快捷方式所指目标文件为稀疏文件(sparsefile)10快捷方式所指目标文件有重分析点数据(reparsepoint)11快捷方式所指目标文件被压缩12快捷方式所指目标
4、文件脱机例:偏移数据解释00004c000000字符"L"000401140200快捷方式的GUID。值固定00000000C00000000000004600148F000000flags。对照表可知有shellitemidlist目标是文件存在描述字符串存在相对路径001820000000文件属性,具体内容可以查上面的属性说明表001C40510A0C文件创建时间ADCBC4010024C4D8A591文件修改时间ADCBC401002C00331674文件最后一次访问时间F6C7C301003400200100文件长度003800000000自定义图标个数00
5、3C01000000打开时窗口为normal状态004000000000热键004400000000暂时还不清楚用途值常为000000000三、ShellitemIDlist段 当文件头中○1的第0位置位时才有。第一个unsignedshortinteger表示itemIDlist段的总长度。后面紧跟着SHITEMID结构。SHITEMID的定义如下:typedefstruct_SHITEMID{USHORTcb;BYTEabID[0];}SHITEMID,*LPSHITEMID;cb保存SHITEMID结构的大小。abID是可变长度的对象标识。具体都是什么含义没
6、看明白,可以参阅MSDN。因为itemIDlist段的开始为这个段的总长度,所以在读取的时候可以把此段跳过不做处理!!:)例:(文件头段的flags标志显示存在shellitemidlist段)偏移数据解释004C9c00itemIDlist总长度(下一段的起始地址为004E+009C=00EA)004E1400第一个itemID的长度00501F50E04F第一个itemID标示内容D020EA3A6910A2D808002B30309D00621900第二个itemID的长度006423433A5C第二个itemID标示内容0000000000000000000
7、000000000000000F193007B2500007D3100000000007031473B310050726F6772616D2046696C65730050524F4752417E310000A02C0000A23100000000007031473B100057696E646F7773204D6564696120506C617965720057494E444F577E320000CC1C0000CE320000200100952FA1992000776D706C617965722E657865000000E80000itemIDlist段结束四、
此文档下载收益归作者所有