autorun.inf语法

转至:http://blog.sina.com.cn/s/blog_4a8b327e01000c7g.html

小知识:autorun.inf的历史
在Windows 95时代,微软在光盘中引入了autorun.inf技术。在Windows 95/98/ME中,光盘自动运行要依靠两个文件:系统文件cdvsd.vxd和光盘上的autorun.inf。cdvsd.vxd会随时侦测光驱中是 否有放入光盘的动作,若有,便开始寻找光盘根目录下的autorun.inf文件。如果存在的话则执行它里面的预设程序。
后来autorun.inf不断完善其语法并且逐步支持其它设备及应用场合(例如硬盘、可移动设备、网络共享等),并且它的调用转移到由 shell32.dll这个系统文件来。

autorun.inf的语法

有5大部分:[AutoRun],[Content],[ExclusiveContentPaths],[IgnoreContentPaths], [DeviceInstall]。总结起来,病毒不外乎利用的是[AutoRun]部分中的两种条目:
    (1)自动运行类型条目
这部分的条目有“open”和“shellexecute”。病毒通过使用这两个条目,使得当插入USB存储设备时,告诉Windows自动运行病毒。其 中:
“open”只可以指定应用程序,适用于Windows 95及以上。
“shellexecute”除了可以指定应用程序外,还可以指定数据文件。使用后右键菜单将多出一项“自动播放”。适用于Windows ME及以上。
两者均可在后面添加参数运行。例如:
open=autorun.exe
open=wscript.exe autorun.vbs
shellexecute=autorun.exe /n
shellexecute=readme.txt
    (2)右键菜单类型条目
病毒通过构造具有欺骗性的右键菜单条目,诱使用户点击从而中招。这部分的条目主要有(其中第二条可以单独使用):
shell/标志=显示的鼠标右键菜单中内容
shell/标志/command=要执行的文件或命令行
例如以下的autorun.inf实例:
[AutoRun]
shell/打开(&O)/command=autorun.exe
shell/资源管理器(&X)/command=autorun.exe
当插入U盘后,右击将出现两组“打开”和“资源管理器”(图1)。如果点击后一组将会运行autorun.exe。


如果构造得好,甚至可以关联到系统本身的菜单条目。例如Trojan.PSW.SBoy.a(瑞星命名)将构造如下的autorun.inf:
[autorun]
OPEN=EXPLORER.EXE
shell/open=打开(&O)
shell/open/Command=EXPLORER.EXE
shell/open/Default=1
shell/explore=资源管理器(&X)
shell/explore/Command=EXPLORER.EXE
    在XP SP2中,右击则只有一组“打开”和“资源管理器”。点击任何一个即中招。因此,现在用右键菜单打开USB存储设备已经不是一个正确方法了!


插入USB存储设备后,一般Windows XP会弹出一个“此盘或设备包含一种以上的内容,您想让Windows做什么”的“自动播放”对话框。部分新手(甚至于一些文章)认为这是自动运行。但这 其实是自动播放。根据微软的说法<3>,从XP时代开始,自动运行(AutoRun)与自动播放(AutoPlay)将不再是同一个概念。前 者依赖于autorun.inf,从Windows 95开始业已存在;后者依赖于Shell Hardware Detection服务(但可以受autorun.inf影响),是从Windows XP开始新增的界面交互功能。
有了autorun.inf病毒就必定自动运行?
有人认为,只要U盘里面有病毒和autorun.inf,插入它就必定自动运行。其实这是错误的,它要受3方面的影响:USB存储设备的类型、操作系统版 本、用户对“自动运行”功能的干预。
USB存储设备的类型:不要认为凡是U盘都是移动设备。一般来说,Windows会将USB存储设备识别为两种:移动设备或者固定设备。两者的图标各有不 同。
 
被识别为 所显示的图标 哪些USB存储设备会识别为这种类型   
移动设备 或者 读卡器、大多数MP3、部分U盘、部分数码相机;当作为储存设备用USB线连接电脑时部分国外品牌手机(如摩托罗 拉、诺基亚手机)也会被识别为这种类型。   
固定设备 或者 移动硬盘、MP4、部分U盘如台电酷闪;当作为储存设备用USB线连接电脑时部分国产手机(如波导、中兴手机)也会 被识别为这种类型。 
不同的设备,Windows会不同对待。例如Windows 2000会调用固定设备中的autorun.inf,但是并不理睬移动设备中的autorun.inf。再比如,同样的autorun.inf,若在移动 硬盘中,XP SP2在“自动播放”对话框中会提示是否运行程序(图3)。但若在MP3就有可能不提示。


操作系统版本:Shell32.dll具有调用autorun.inf的功能,而这个文件的版本在不断地更新<4>,因此造成不同 Windows对相同autorun.inf的不同理解。比如刚才提到的Trojan.PSW.SBoy.a所写的autorun.inf,假如到 Windows ME/2000,右击仍然会显示两组“打开”和“资源管理器”。再比如移动设备中的autorun.inf从XP时代开始也起作用了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值