计算机科学

首页 > 计算机科学

AutoRun

在 Windows 7 上“自动播放”的画面

AutoRun和AutoPlay是微软窗口系统的组件,其内容标示着系统在搜索到设备时可采取的行动。

AutoRun在Windows 95时首度露面,目的是帮助用户正确运行光盘上制作者想要运行的文件,另外AutoRun也能透过双击我的计算机内的设备图标启动AutoRun。但后来U盘病毒横行,微软发布更新关闭非光盘驱动器的AutoRun。

在Windows XP之后,微软让用户方便选择相关应用程序,制作出如图形化接口方式让用户选择如何处理设备中的文件。

请注意AutoPlay不等同于AutoRun

目录

  • 1 AutoRun.inf的示例
  • 2 Windows的设备頪型
  • 3 AutoRun.inf的默认激活
    • 3.1 Windows XP 以前
    • 3.2 Windows XP SP0 到 SP2
    • 3.3 Windows XP SP2 到 SP3
    • 3.4 Windows Vista
    • 3.5 Windows 7
  • 4 AutoRun.inf的问题
  • 5 防止病毒利用 AutoRun
  • 6 AutoPlay的关闭
  • 7 相关机码值
  • 8 在其它操作系统上的作用
  • 9 引用数据

AutoRun.inf的示例

autorun 
open=setup.exe 
icon=setup.exe,0
label=My install CD

意思就是在我的计算机双击光盘盘符时会运行setup.exe,而显示图标为setup.exe中第0个图标(即第1个图标),标签是My install CD

Windows的设备頪型

微软窗口系统中所定义的设备类型:[1]

设备类型 描述
DRIVE_UNKNOWN 无法识别的设备
DRIVE_REMOVABLE 可卸除式设备 (磁片、USB设备)
DRIVE_FIXED 无法移除的设备 (硬盘)
DRIVE_REMOTE 网络设备 (网上邻居)
DRIVE_CDROM 光盘设备
DRIVE_RAMDISK RAMDisk

AutoRun.inf的默认激活

  • 插入设备时启动。
  • 双击我的计算机设备时启动。
  • 对我的计算机设备点击右键菜单中 "AutoRun" 项目时启动。
  • 其他(如点击根目录文件夹)则不会启动。

Windows XP 以前

  • 所有设备都会依照 Autorun.inf 启动。

Windows XP SP0 到 SP2

  • DRIVE_CDROM 会先运行 autorun.inf ,若不存在则运行 AutoPlay。
  • DRIVE_REMOVABLE 运行 AutoPlay。另外在我的计算机双击设备或右键设备则会启动 autorun.inf ,因为臭虫[2]
  • 其他设备都会依照 Autorun.inf 启动。

Windows XP SP2 到 SP3

  • DRIVE_CDROM 会先运行 autorun.inf ,若不存在则运行 AutoPlay。
  • DRIVE_REMOVABLEDRIVE_FIXED 运行 AutoPlay,但 AutoPlay 默认选项(即AutoPlay第一个选项)是由 autorun.inf 所定义。另外在我的计算机双击设备或右键设备则会启动 autorun.inf ,因为臭虫[2]
  • 其他设备都会依照 Autorun.inf 启动。

Windows Vista

  • 在所有类型的驱动器中,AutoRun.inf不再自动默默地运行。所有的卷都是通过AutoPlay来处理:默认情况下,会弹出相应的对话框给用户。

Windows 7

  • DRIVE_CDROM 会先运行 autorun.inf ,若不存在则运行 AutoPlay。
  • 其他仅运行 AutoPlay ,而且 AutoRun.inf 并不会影响 AutoPlay 默认选项。
  • 即使修改 NoDriveTypeAutoRun 值也无效。
  • 在2011年2月8日发布的安全公告KB967940中,微软对Windows自动运行功能进行了最新升级,限定Windows XP、Windows Server 2003、Vista(win7属于Vista?)和Windows Server 2008平台上的自动运行功能仅支持CD和DVD媒体。当用户使用包含autorun.inf文件的USB设备、网络共享或其它非CD/DVD媒体时,系统不会执行自动运行。安装此次更新后,当插入USB设备时,用户不会收到程序安装的提示对话框,用户需要手动打开文件夹找到安装文件,然后双击安装软件。不过,在连接至计算机时,有些USB的固件会让系统将其识别为CD,那么本次针对AutoRun的升级就对它们无效了。
  • win7中自动运行/自动播放功能唯一得以保留的地方是在光盘载体上。

AutoRun.inf的问题

著名的 kavo U盘病毒就是使用 autorun.inf 散播病毒,一旦计算机中了病毒之后就会对所有磁盘持续写入 autorun.inf ,让用户在别台计算机使用设备时也会中相关的病毒。

随着病毒的更新,其手法也日新月异,如图标使用跟文件夹一样的图标让用户难以分辨真假,进而造成安全性的威胁[3]

防止病毒利用 AutoRun

有鉴于网络上充斥着莫名其妙的解决方法,微软在2009年8月25日发布KB971029,关闭autorun.inf的影响,使相关功能变得跟Windows 7一样,在2011年2月微软正式放入在Microsoft Update中。

Windows 7以上的用户即使在设备中有病毒也不用担心相关问题,除非手动运行它。

AutoPlay的关闭

若不满意 AutoPlay 的功能可以使用下列方式关闭,但不会影响 AutoRun 功能,若要关闭 AutoRun 请遵循上方的指示。

若是 Windows XP 以前的用户请先修复 KB967715,Windows Vista 用户请修复 KB950582,接下来请安装Microsoft Fix it 50471[4]即可关闭。若要取消关闭,请安装Microsoft Fix it 50475。

相关机码值

  • NoDriveTypeAutoRun
这是控制 AutoRun 的激活与否,其位置在于 HKLMSoftwareMicrosoftWindowsCurrentVersionpoliciesExplorer ,可依表对想打开或关闭的设备控制。注意 HKLM 的优先权比 HKCU 来的大。这个动作也会影响 AutoPlay。
  • NoDriveAutoRun
这是控制 AutoRun 针对不同磁盘代号的激活与否,其位置在于 HKLMSoftwareMicrosoftWindowsCurrentVersionpoliciesExplorer ,可依表对想打开或关闭的设备控制。注意 HKLM 的优先权比 HKCU 来的大。

在其它操作系统上的作用

在GNOME的Nautilus中,autorun.inf中的icon项可以被识别。只要其指向一个正确的ico文件(Windows图标文件),Nautilus就可以将已挂载文件系统的图标替换成此图标。

引用数据

  1. ^ GetDriveType Function, 微软MSDN数据库
  2. ^ 2.0 2.1 如何在 Windows 中更正“停用自动运行登录机码”增强功能
  3. ^ File:Conficker worm AutoPlay Vista.png
  4. ^ 如何在 Windows 中更正“停用自动运行登录机码”增强功能,如何在 Windows 7 和其他操作系统中停用或激活所有自动运行功能

上一篇:R-Studio
下一篇:Spybot-S&D
相关推荐