[原创]Windows的11种快捷方式(2006-12-21修订版)

 

版权:electronixtar@gmail.com

快捷方式,很多人的反映就是那个小箭头,其实Windows支持9种快捷方式。

关于这个格式

1. *.lnk
这是微软的通用快捷方式,很多电脑初学者当年就是把一个500MB的游戏在桌面上的1k大小的快捷方式复制到软盘里,然后回家双击打开一看,发现Windows提示“找不到路径”云云。后来才明白这只是个快捷方式。

在命令行里打开一个 lnk 文件: Rundll32.exe url.dll, FileProtocolHandler %L

lnk 的二进制格式 http://www.vckbase.com/document/viewdoc/?id=1411

其实 .LNK根 Windows Shell 的关系比较紧密,在 Windows Vista 里,很多 Shell 对象都可以通过 .lnk 文件来打开,所以 lnk 文件里全部是用 CLSID 作为引导

在wsh/vbs里操作 .lnk 文件 script56.chm::/html/wsconManagingShortcuts.htm
 

2. *.url

.url 文件的格式和 .inf 的相似:
http://www.cyanwerks.com/file-format-url.html

3. *.pif

这是相当古老的一种格式了
http://www.smsoft.ru/en/pifdoc.htm

4. FolderShortcut

这个是未公开的一种快捷方式吧,不要理解成 文件夹快捷方式了,我记得是从Win98就开始用这个东东了,貌似是和 Active Desktop 技术一起出现的。国内的首次公开是在这个帖子 http://bbs.onegreen.net/TopicOther.asp?t=5&BoardID=2&id=1414 ,最简单的 文件夹快捷方式 是把一个文件夹拖放到 开始菜单

如下图:上面那个是直接拖放生成的 文件夹快捷方式,下面的是传统的 lnk 快捷方式。两者的明显不同是: 文件夹快捷方式 是可以在菜单里显示所指向目标文件夹的内容的。

更为可喜的是,文件夹快捷方式没有小箭头!

文件夹快捷方式的属性有点怪怪的呢

手工建立 文件夹快捷方式 的方法:
1. 在目标文件夹里建立一个 系统 隐藏 属性的 desktop.ini(cmd里 attrib +S +h desktop.ini),内容为:
[.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Flags=2
2. 保存,建立一个 一般的快捷方式,指向你的目标地址,名称为:target.lnk (必须是这个!)。
3. 把该文件夹设为 只读 属性

貌似文件夹快捷方式只能指向 文件夹 和 URL,不能指向文件。其实 文件夹快捷方式用在黑克攻防领域是相当的爽的,特别是结合 .lnk .url 的一些溢出,几乎是百发百中!(谁会想到,打开一个文件也会中病毒?)

5. HardLink

NTFS的一大特性。在XP下可以通过 fsutil 建立(需要管理员权限)。

C:\WINDOWS\system32>fsutil hardlink create
用法 : fsutil hardlink create <新文件名> <现有文件名>
例如 : fsutil hardlink create c:\foo.txt c:\bar.txt

HardLink有什么用呢?可以把一个文件,放到很多目录下,但是只占一个文件的空间,有点像那些 n 合 1 的光盘的原理。所以hardlink可以用来骗人啦,例如,我把我的一个2GB的GHOST镜像文件hardkink 1000次,那么我看这些所有文件的属性就是一个 2TB 啦,呵呵,其实我的硬盘没这么大。Hardlink 可以用来解决很多问题。比如说,系统里很多 dll 是重复的,我们就可以把一个 dll 做成很多 hardlink,这样可以大大的节省空间。需要注意的是,Hardlink 只实用于NTFS的分区,一个文件只能被Hardlink 1024ci ,而且只能在同一分区建立。

6. Junction Point

相比于Hardlink,Junction Point 可以看作文件夹的硬连接吧,Vista里 Junction 已经被完全的符号连接取代了。

7. Reparse Point

和Hardlink有点类似,不过是针对文件夹的,还是fsutil命令来管理

C:\WINDOWS\system32>fsutil reparsepoint
---- 支持的 REPARSEPOINT 命令 ----

query           查询重分析点
delete          删除重分析点

不过要建立的话,可以通过SysInternals的又一款作品 http://www.sysinternals.com/files/junction.zip  来建立

8. Symbolic Links

符号连接允许你创建一个指针(pointer),从目录的一个位置指向实际上位于别处的文件。NTFS并没有真正实现类似于UNIX系统中的符号连接,但通过重解析点,这种功能被模拟出来。实际上,一个符号连接就是一个重解析点,它将对一个文件的访问重定向到另一个文件。

9. Mount Point

可以通过 mountvol 命令来管理。严格的说这已经不是快捷方式了,不过可以把一个储存媒体挂载到一个NTFS的文件夹下。

9. Shell Object

其实呢,“字体”文件夹就是一种典型的 Shell 对象。下载ShellExtViewShellObjectEditor

10. Shell Command

常见的有

显示桌面.csf,内容为:
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

改文件会DDE调用explorer来显示桌面

查看频道.scf

[Shell]
Command=3
IconFile=shdocvw.dll,-118

[IE]
Command=Channels

explorer.scf


[Shell]
Command=2
IconFile=explorer.exe,1

[Taskbar]
Command=Explorer

 我总觉得 .scf 根 GNOME里的 .desktop 文件很相似呢,呵呵

还有一种是复制文件的时候,拖放对象的一种特殊快捷方式,这类快捷方式都是 0 字节的文件,也是通过DDE调用的。例如:
我的文档.mydocs
ZIP压缩文件夹.ZFSendToTarget
桌面.desklink
邮件.mapmail

Windows所支持的快捷方式基本上就这些了,快捷方式以极小的代价把一个文件在不同的位置展现了出来,给系统的使用带来了很大的方便,同时也带来了很多未知的安全隐患。如果有时间的话,下次继续,《快捷方式攻防战》

[内有附件]

Comments