论文部分内容阅读
本文你可以学到
①病毒是如何利用Autorun.inf通过USB存储设备进行传播的
②并非只要有Autorun.inf病毒就能运行
③右键打开闪存盘也有陷阱
④如何正确打开USB存储设备
越来越多的人已经拥有了自己的MP3、闪存盘,甚至是移动硬盘,与此同时,利用USB存储设备传播的病毒也越来越多,俨然成为了标准传播手段。《电脑爱好者》也多次介绍了闪存盘预防及清除Autorun.inf类病毒的方法,但这次我们将为你介绍Autorun.inf不为常人所知的一面。
小知识:Autorun.inf的历史
光盘中开始出现Autorun.inf是在Windows 95时代。在Windows 95/98/Me里,光盘自动运行要依靠两个文件:系统文件CDVSD.VXD和光盘上的Autorun.inf。CDVSD.VXD会随时侦测光驱中是否有放入光盘的动作,一旦发现便开始寻找光盘根目录下的Autorun.inf文件。如果存在就执行指定程序。
后来随着Autorun.inf不断完善,开始支持其他设备及应用场合(例如硬盘、可移动设备、网络共享等),并且它的调用转移到由shell32.dll这个系统文件来完成。
Autorun.inf帮你忙
病毒是通过Autorun.inf,利用闪存盘传播的,所以很多人以为Autorun.inf是个“坏家伙”,其实用好Autorun.inf是可以帮你提高工作效率的。
拿过任意一张可以自动运行的光盘,用记事本或其他文本编辑器打开Autorun.inf,就可以看到一个简单的Autorun.inf文件编写方法。Autorun.inf包含5大部分:[AutoRun],[Content],[ExclusiveContentPaths],[IgnoreContentPaths],[DeviceInstall]。我们可以做个简单的Autorun.inf,看看它到底能做些什么。
在任意文本编辑器中输入以下内容,保存为Autorun.inf,并放在C盘根目录下:
[AutoRun]
shell\记事\command=notepad.exe
shell\计算\command=calc.exe
在“我的电脑”中右击C分区图标,再分别试着点击“记事”和“计算”,就可以快速打开记事本和计算器了。当然,同样的技术,用在病毒上,就会有截然不同的效果:
自动运行类型项
这部分的条目有“open”和“shellexecute”。病毒通过使用这两个条目,使得当插入USB存储设备时,告诉Windows自动运行病毒。其中“open”可以指定应用程序,“shellexecute”除了可以指定应用程序外,还可以指定数据文件。使用后右键菜单将多出一项“自动播放”。两者均可在后面添加参数运行。例如:
open=autorun.exe
open=wscript.exe autorun.vbs
shellexecute=autorun.exe /n
shellexecute=readme.txt
右键菜单类型项
病毒通过构造具有欺骗性的右键菜单项,诱使用户点击从而中招。这部分的条目主要有(其中第二条可以单独使用):
shell\标志=鼠标右键菜单中显示的内容
shell\标志\command=要执行的文件或命令
例如:
[AutoRun]
shell\打开(&O)\command=autorun.exe
shell\资源管理器(&X)\command=autorun.exe
右击包含上面这个Autorun.inf的闪存盘盘符,将出现两组“打开”和“资源管理器”(见图1)。如果点击上面一组就会运行autorun.exe。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200707/dnah20070734-1-l.jpg)
图1
如果Autorun.inf写得好,甚至可以关联到系统本身的菜单条目。例如病毒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
这样文件的效果是右击保存有该文件的分区图标,就会看到如图2所示的菜单,点击“打开”和“资源管理器”任何一个都会中招。因此,现在用右键菜单打开USB存储设备已经不是正确方法了。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200707/dnah20070734-2-l.jpg)
图2
Autorun.inf、病毒其实不相关
有人认为,只要闪存盘里面有病毒和Autorun.inf,插入它就必定自动运行,其实这是错误的。它要受三方面的影响:USB存储设备的类型,操作系统版本,用户对“自动运行”功能的干预。
不同设备区别对待
不要认为凡是闪存盘都是移动设备。一般来说,Windows会将USB存储设备识别为两种:移动设备或者固定设备。两者的图标各有不同(见表)。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200707/dnah20070734-3-l.jpg)
不同的设备,Windows会不同对待。例如Windows 2000会调用固定设备中的Autorun.inf,但是并不理睬移动设备中的Autorun.inf。再比如,同样的Autorun.inf,若在移动硬盘中,Windows XP在“自动播放”对话框中会提示是否运行程序(见图3)。但若在MP3就有可能不提示。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200707/dnah20070734-4-l.jpg)
图3
XP系统的特殊待遇
Shell32.dll具有调用Autorun.inf的功能,而这个文件的版本在不断地更新,因此造成不同Windows对相同Autorun.inf的不同理解。比如刚才提到的Trojan.PSW.SBoy.a所写的Autorun.inf,在Windows Me/2000的右键菜单中仍然会显示两组“打开”和“资源管理器”。再比如移动设备中的Autorun.inf对于Windows XP也开始起作用了。
人工干预已被吃透
在使用闪存时,你可以通过各种操作让“自动运行”功能暂时失效或是彻底关闭。这部分除可以参考2007年第3期《由Autorun.inf引发的争议》及2006年第23期《解救U盘Autorun.inf危情》的内容外,我再补充了两点。
①暂时禁用自动运行
在插入USB存储设备时按住Shift键即可暂时禁用自动运行。在一台新电脑上插入闪存盘的时候尤为重要。
②注册表禁止自动运行
在注册表中展开到[HKEY_ CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer],其中NoDriveAutoRun和NoDriveTypeAutoRun子键均限制着Autorun的作用范围。NoDriveAutoRun(REG_DWORD值)是限制指定盘符的自动运行,NoDriveTypeAutoRun是限制指定类型设备的自动运行。
受版面所限,我制作了一个Excel文档,里面有关于这两个键值更详细的设置说明。同时通过该文档提供的下拉菜单选择,就可以快速计算出所需要的键值,从而省去手动计算的麻烦。下载地址:http://work.newhua.com/cfan/200707/autorunregcalc.zip。
小提示:闪存盘病毒免疫程序
在Windows系统,相同的目录下面是不允许创建同名文件或同名文件夹的,也就是说我们选建好一个与病毒同名的文件夹,病毒就无法入侵了。依据这个原理,我们可以在闪存盘上把流行的闪存盘病毒都建立起一个与之同名的文件夹,那样的话闪盘病毒就无法通过闪盘进行非法传播了:从http://work.newhua.com/cfan/200707/myup.rar下载压缩包,将文件解压缩至闪存盘根目录中,所有的常见的病毒文件名就都建立完成了。
打开USB存储设备有讲究
禁止自动运行并不是万事大吉。因为Autorun.inf中的其他命令(如右键菜单等)仍然生效。何况你不可能在每一部电脑都禁止自动运行吧。那究竟如何才能正确打开USB存储设备而不触发病毒呢?
方法是:在插入USB存储设备时按住Shift键,暂时禁用自动运行,然后打开“资源管理器”(或在“我的电脑”中,单击工具栏中的“文件夹”按钮,切换到“资源管理器”状态),从左边的树状结构中进入USB存储设备,这样就不会触发病毒了。
另外,查看和删除而不触发USB存储设备中的病毒文件,完全有更简单的方法:用WinRAR打开USB存储设备盘符。WinRAR就会显示所有文件,包括隐藏文件,直接删除病毒文件就可以了。特别是对于已中毒,不能显示隐藏文件的情况下,用WinRAR来查看更是一种简便的方法(Total Commander也有相同的功能)。
小提示:“自动运行”与“自动播放”
插入USB存储设备后,一般Windows XP会弹出一个“此盘或设备包含一种以上的内容,您想让Windows做什么”的“自动播放”对话框,部分新手认为这是“自动运行”。但这其实是“自动播放”。从Windows XP开始,自动运行(AutoRun)与自动播放(AutoPlay)不再是同一个概念。前者依赖于Autorun.inf,后者依赖于Shell Hardware Detection服务(但受Autorun.inf影响)。
火速链接
更多预防Autorun.inf病毒的方法可以登录http://blog.cfan.com.cn/index.php/14246/action_viewspace_itemid_80918。
①病毒是如何利用Autorun.inf通过USB存储设备进行传播的
②并非只要有Autorun.inf病毒就能运行
③右键打开闪存盘也有陷阱
④如何正确打开USB存储设备
越来越多的人已经拥有了自己的MP3、闪存盘,甚至是移动硬盘,与此同时,利用USB存储设备传播的病毒也越来越多,俨然成为了标准传播手段。《电脑爱好者》也多次介绍了闪存盘预防及清除Autorun.inf类病毒的方法,但这次我们将为你介绍Autorun.inf不为常人所知的一面。
小知识:Autorun.inf的历史
光盘中开始出现Autorun.inf是在Windows 95时代。在Windows 95/98/Me里,光盘自动运行要依靠两个文件:系统文件CDVSD.VXD和光盘上的Autorun.inf。CDVSD.VXD会随时侦测光驱中是否有放入光盘的动作,一旦发现便开始寻找光盘根目录下的Autorun.inf文件。如果存在就执行指定程序。
后来随着Autorun.inf不断完善,开始支持其他设备及应用场合(例如硬盘、可移动设备、网络共享等),并且它的调用转移到由shell32.dll这个系统文件来完成。
Autorun.inf帮你忙
病毒是通过Autorun.inf,利用闪存盘传播的,所以很多人以为Autorun.inf是个“坏家伙”,其实用好Autorun.inf是可以帮你提高工作效率的。
拿过任意一张可以自动运行的光盘,用记事本或其他文本编辑器打开Autorun.inf,就可以看到一个简单的Autorun.inf文件编写方法。Autorun.inf包含5大部分:[AutoRun],[Content],[ExclusiveContentPaths],[IgnoreContentPaths],[DeviceInstall]。我们可以做个简单的Autorun.inf,看看它到底能做些什么。
在任意文本编辑器中输入以下内容,保存为Autorun.inf,并放在C盘根目录下:
[AutoRun]
shell\记事\command=notepad.exe
shell\计算\command=calc.exe
在“我的电脑”中右击C分区图标,再分别试着点击“记事”和“计算”,就可以快速打开记事本和计算器了。当然,同样的技术,用在病毒上,就会有截然不同的效果:
自动运行类型项
这部分的条目有“open”和“shellexecute”。病毒通过使用这两个条目,使得当插入USB存储设备时,告诉Windows自动运行病毒。其中“open”可以指定应用程序,“shellexecute”除了可以指定应用程序外,还可以指定数据文件。使用后右键菜单将多出一项“自动播放”。两者均可在后面添加参数运行。例如:
open=autorun.exe
open=wscript.exe autorun.vbs
shellexecute=autorun.exe /n
shellexecute=readme.txt
右键菜单类型项
病毒通过构造具有欺骗性的右键菜单项,诱使用户点击从而中招。这部分的条目主要有(其中第二条可以单独使用):
shell\标志=鼠标右键菜单中显示的内容
shell\标志\command=要执行的文件或命令
例如:
[AutoRun]
shell\打开(&O)\command=autorun.exe
shell\资源管理器(&X)\command=autorun.exe
右击包含上面这个Autorun.inf的闪存盘盘符,将出现两组“打开”和“资源管理器”(见图1)。如果点击上面一组就会运行autorun.exe。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200707/dnah20070734-1-l.jpg)
图1
如果Autorun.inf写得好,甚至可以关联到系统本身的菜单条目。例如病毒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
这样文件的效果是右击保存有该文件的分区图标,就会看到如图2所示的菜单,点击“打开”和“资源管理器”任何一个都会中招。因此,现在用右键菜单打开USB存储设备已经不是正确方法了。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200707/dnah20070734-2-l.jpg)
图2
Autorun.inf、病毒其实不相关
有人认为,只要闪存盘里面有病毒和Autorun.inf,插入它就必定自动运行,其实这是错误的。它要受三方面的影响:USB存储设备的类型,操作系统版本,用户对“自动运行”功能的干预。
不同设备区别对待
不要认为凡是闪存盘都是移动设备。一般来说,Windows会将USB存储设备识别为两种:移动设备或者固定设备。两者的图标各有不同(见表)。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200707/dnah20070734-3-l.jpg)
不同的设备,Windows会不同对待。例如Windows 2000会调用固定设备中的Autorun.inf,但是并不理睬移动设备中的Autorun.inf。再比如,同样的Autorun.inf,若在移动硬盘中,Windows XP在“自动播放”对话框中会提示是否运行程序(见图3)。但若在MP3就有可能不提示。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200707/dnah20070734-4-l.jpg)
图3
XP系统的特殊待遇
Shell32.dll具有调用Autorun.inf的功能,而这个文件的版本在不断地更新,因此造成不同Windows对相同Autorun.inf的不同理解。比如刚才提到的Trojan.PSW.SBoy.a所写的Autorun.inf,在Windows Me/2000的右键菜单中仍然会显示两组“打开”和“资源管理器”。再比如移动设备中的Autorun.inf对于Windows XP也开始起作用了。
人工干预已被吃透
在使用闪存时,你可以通过各种操作让“自动运行”功能暂时失效或是彻底关闭。这部分除可以参考2007年第3期《由Autorun.inf引发的争议》及2006年第23期《解救U盘Autorun.inf危情》的内容外,我再补充了两点。
①暂时禁用自动运行
在插入USB存储设备时按住Shift键即可暂时禁用自动运行。在一台新电脑上插入闪存盘的时候尤为重要。
②注册表禁止自动运行
在注册表中展开到[HKEY_ CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer],其中NoDriveAutoRun和NoDriveTypeAutoRun子键均限制着Autorun的作用范围。NoDriveAutoRun(REG_DWORD值)是限制指定盘符的自动运行,NoDriveTypeAutoRun是限制指定类型设备的自动运行。
受版面所限,我制作了一个Excel文档,里面有关于这两个键值更详细的设置说明。同时通过该文档提供的下拉菜单选择,就可以快速计算出所需要的键值,从而省去手动计算的麻烦。下载地址:http://work.newhua.com/cfan/200707/autorunregcalc.zip。
小提示:闪存盘病毒免疫程序
在Windows系统,相同的目录下面是不允许创建同名文件或同名文件夹的,也就是说我们选建好一个与病毒同名的文件夹,病毒就无法入侵了。依据这个原理,我们可以在闪存盘上把流行的闪存盘病毒都建立起一个与之同名的文件夹,那样的话闪盘病毒就无法通过闪盘进行非法传播了:从http://work.newhua.com/cfan/200707/myup.rar下载压缩包,将文件解压缩至闪存盘根目录中,所有的常见的病毒文件名就都建立完成了。
打开USB存储设备有讲究
禁止自动运行并不是万事大吉。因为Autorun.inf中的其他命令(如右键菜单等)仍然生效。何况你不可能在每一部电脑都禁止自动运行吧。那究竟如何才能正确打开USB存储设备而不触发病毒呢?
方法是:在插入USB存储设备时按住Shift键,暂时禁用自动运行,然后打开“资源管理器”(或在“我的电脑”中,单击工具栏中的“文件夹”按钮,切换到“资源管理器”状态),从左边的树状结构中进入USB存储设备,这样就不会触发病毒了。
另外,查看和删除而不触发USB存储设备中的病毒文件,完全有更简单的方法:用WinRAR打开USB存储设备盘符。WinRAR就会显示所有文件,包括隐藏文件,直接删除病毒文件就可以了。特别是对于已中毒,不能显示隐藏文件的情况下,用WinRAR来查看更是一种简便的方法(Total Commander也有相同的功能)。
小提示:“自动运行”与“自动播放”
插入USB存储设备后,一般Windows XP会弹出一个“此盘或设备包含一种以上的内容,您想让Windows做什么”的“自动播放”对话框,部分新手认为这是“自动运行”。但这其实是“自动播放”。从Windows XP开始,自动运行(AutoRun)与自动播放(AutoPlay)不再是同一个概念。前者依赖于Autorun.inf,后者依赖于Shell Hardware Detection服务(但受Autorun.inf影响)。
火速链接
更多预防Autorun.inf病毒的方法可以登录http://blog.cfan.com.cn/index.php/14246/action_viewspace_itemid_80918。