lnk在Windows平台下是快捷方式,能够指向其余目录下的文件,而且能够传递参数。如今有些恶意活动会恶意利用lnk,执行恶意代码。shell
关于lnk的格式,能够使用010 editor的模板功能,快速识别。code
若是鼠标右键建立快捷方式,能够在目标中输入执行的命令,可是字符串最长为260字节。blog
能够将过长的命令放在其余位置去执行,也能够对lnk自己进行修改,从而去除字符数限制。字符串
如今的lnk启动命令很容易被拦截,不过能够了解一下。it
能够简单粗暴地右键建立一个lnk文件,拖进010 editor,用模板跑一下。io
能够看到实际上COMMAND_LINE_ARGUMENTS
的长度能够支持到16-bit大小(0xffff),修改为大于260的值,以后插入增大字节数量的2倍(由于支持的是Unicode格式字符)空白空间,在其中写入命令。模板
也能够在中间加大量空格,最后末尾加上恶意命令,这样限于图形窗口中的260显示大小,能够必定程度上隐藏自身。程序
假如不修改图标的话,快捷方式的图标将显示为指向的可执行程序的图标,能够在右键菜单中经过"更改图标"。im
能够选择系统dll中携带的文件图标,好比说%systemroot%\\system32\\shell32.dll
。img
在lnk文件中的变化主要体如今ShellLinkHeader
的LinkFlags
结构体中的HasIconLocation
标志位置为1;IconIndex
为使用的icon在目标中的下标;最后是紧接在COMMAND_LINE_ARGUMENTS
后的ICON_LOCATION
字段,lnk使用的icon所在的文件,本文中是“%systemroot%\system32\shell32.dll”。