其实很早就想写这篇文章,可是一直不知道应该从何说起。想来想去,还是从用户的中招及防御角度解析一下autorun.inf吧!
兵欲善其事,必先利其器!我认为还是有必要解释一下autorun.inf究竟是什么?首先需要声明的是autorun.inf并不是病毒,这也是众多杀毒软件对此文件不理不顾的原因。可以理解为它是微软为了方便开发者去自定义当前操作用户进入驱动器的方式而建立的一种特殊的打开磁盘以及进行相关操作方式的引导文件。譬如当你将windows xp的安装盘放入光驱后,你没有进行任何操作,windows安装程序即会自动运行,这即是开发者所定义的你浏览光盘的方式。但是凡事有利有弊,当病毒制造者将此文件引导向一个病毒文件时,该病毒就会进入激活状态。
通常由于U盘使用的并不是光盘格式,所以虽然在根目录下有autorun.inf文件(autorun.inf仅在驱动器的根目下有效,这里包括映射成驱动器的目录),但其本身不会随U盘的插入而运行,而病毒之所以能够通过其运行,一般是由于用户的误操作而引起的,我将会一一说明!
这里Monyer将排除硬盘和光盘而直接进行可移动磁盘的分析,因为它才是病毒传播的源泉嘛,然后一步步解开autorun.inf的面纱。(在网上对于autorun.inf的用法以及执行结果众说纷纭,所以这里仅以我在单机上测试的结果为例)
一级诱惑
最能诱骗用户上当的招数应该是“双击”了
当autorun.inf里的内容为:
[autorun]
shellexecute=Project1.exe
你双击时,它引导的程序就运行了,不仅如此,此时点击右键的“自动播放”也会运行程序(此时有两个“自动播放”,其中没有被加粗的是系统原来的,但是若重启后,系统的“自动播放”菜单会消失)。
所以有人给出高招是,通过右键“打开”菜单,打开U盘。然而当你这么做时,你可能已经中了另外一个圈套。
二级诱惑
当autorun.inf里的内容为:
[autorun]
shellexecute=Project1.exe
shell/open/Command=Project1.exe
你不仅双击会运行程序,点击右键的“打开”菜单,依然会运行该程序,点击“自动播放”仍会运行。
而此时又有人想出了新办法,通过右键的“资源管理器”打开U盘。而此时你已经无形中落入了第三个圈套。
三级诱惑
当autorun.inf里的内容为:
[autorun]
shellexecute=Project1.exe
shell/open/Command=Project1.exe
shell/explore/Command=Project1.exe
你除了上述的方式都会运行病毒,而且这回通过右键的“资源管理器”也会运行病毒。
而且不仅仅如此,如果autorun.inf里的内容为:
[autorun]
shell/Auto/command=Project1.exe
shellexecute=Project1.exe
shell/open/Command=Project1.exe
shell/explore/Command=Project1.exe
shell/find/Command=Project1.exe
shell/SomeWords/Command=Project1.exe
此时你的右键会增加auto和somewords菜单,点击都会运行,而且此时甚至点击“搜索”(有时有些人常以此方法搜索删除autorun.inf)都会运行程序
所以通过鼠标左键双击和右键选择来打开U盘,都是都不可取的了。
这里monyer给出两种方法:
一是win+r输入盘符(有人说这种方式也能运行程序,不过我没有发现)
二是通过工具栏的“文件夹”选项在左侧打开
当然,你也可以选择用简易U盘病毒清理系统打开,它会先删除autorun.inf,并重启explorer,然后打开U盘。
当然,那样做是很费劲的,那么我们还不如一了百了,在注册表中禁用它:
注册表的位置为:HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/
"NoDriveTypeAutoRun"
其中:
01h DRIVE_UNKNOWN (未知设备)
02h DRIVE_NO_ROOT_DIR(没有根目录的设备)
04h DRIVE_REMOVABLE(可移动设备,U盘)
08h DRIVE_FIXED (固定的设备,硬盘)
10h DRIVE_REMOTE (网络设备,web驱动器)
20h DRIVE_CDROM (光驱)
40h DRIVE_RAMDISK(虚拟存储设备)
80h (未指明的驱动设备)
在选择他们时,应采取相加的关系,譬如你需要除了光驱,剩下的设备都不允许运行。那么就是01+02+04+08+10+40+80=df(注意:这里是十六进制的加法)(全部禁用为ff,建议修改为ff),所以打开注册表将默认的95改成df就可以了
你也可以将以下代码保存为*.reg文件然后运行:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer]
"NoDriveTypeAutoRun"=dword:000000df
当然,什么运行什么不运行需要你自己选择。但是如果你的设置方法也是df,也就是允许光盘运行。但是某些时候你却不想让光盘自动运行,那么有几种方法,我一般爱用的一种是按住shift键,其他方法请见http://support.microsoft.com/kb/126025/zh-cn
好了本文到此结束,没有什么技术含量,文中若有谬误或遗漏之处还请高手多多指教,我好及时改正,以免贻笑大方,谢谢!
本文参考了如下文章或文献,在此表示感谢:
CyyIsGood和Cloud的U盘病毒分析
如何测试 Autorun.inf 文件
autorun.inf完全操作手册