Autorun.inf文件

本文详细介绍了Autorun.inf文件的工作原理及配置方法。Autorun.inf是一个用于自动运行特定程序的文本文件,常见于光盘和U盘等存储介质。文中解释了如何通过修改此文件实现自动播放、设置磁盘图标等功能,并提供了具体的命令示例。

  什么是Autorun.inf文件呢,严格的说它是一个必须存放在驱动器根目录下的有一定格式的文本文件,它是由一个或多个“节”组成,每个“节”必须以节名作为开始的一行,节名必须用中括号[]括起来,节名之下则为本节中的命令。对于autorun.alpha来说我们很少用到,而Deviceinstall只能在Windows XP下使用,可以利用它指定硬件向导进行递归搜索的子目录。光盘一放入光驱就会自动被执行,主要依靠两个文件,一是光盘上的AutoRun.inf文件,另一个是操作系统本身的系统文件之一的Cdvsd.vxd。Cdvsd.vxd会随时侦测光驱中是否

有放入光盘的动作,如果有的话,便开始寻找光盘根目录下的AutoRun.inf文件;如果存在AutoRun.inf文件则执行它里面的预设程序。  
   其中Autorun.inf一共支持三个节,它们分为[autorun]、[autorun.alpha]、[Deviceinstall],其中只
有[autorun]是必须存在的。

  [AutoRun]    //表示AutoRun部分开始,必须输入
  Icon=C:/C.ico  //给C盘一个个性化的盘符图标C.ico
  Open=C:/1.exe  //指定要运行程序的路径和名称,在此为C盘下的1.exe

  适合硬盘和光盘盘使用.“Open=”指定的文件必须为可执行文件,例如com、exe、bat,特别是结合Bat批处理文件,就可以自动完成一系列的任务了!
  icon也可以用Defaulticon命令代替,效果是一样的!Iconname可以是.ico、.bmp、.exe或 .dll文件,如果
这个文件包含多个图标,可指定文件中的一个资源号(索引)来引用其中的不同图标。资源号由0、1、2……数字来标识,分别代表图标信息文件中的第一个图标、第二个图标……,它与图标信息文件间用逗号分隔。例如Icon=C:/Windows/System/Shell32.DLL,21,exe文件的图标一般为1号,需要说明的是,如果Defaulticon 和Icon命令同出现在一个Autorun.inf文件中,Autoplay使用Defaulticon命令而忽略Icon命令。

  因为U盘现在普遍都被识别为可移动存储设备,这样的状态操作系统是不会去自动运行其上的autorun的。但是对于U盘可以使用:

  Shellexecute=1.exe

  同时也可以使U盘被识别为类似光盘的设备,但是这样就成为不可读的了,不推荐使用!
  要autorun, 就不能被识别为removable disk,所以 inquiry时返回数据的第二个byte的最高位必须为0,即
:

 inquiry[0] = 0; //DIRECT_ACCESS_DEVICE class device
 inquiry[1] = 0; // bit 7 ==1,表示为 removable disk,bit7 ==0表示为 hard disk
 .....       //后面省略
比如把U盘虚拟成CDFS,首先 inquiry[0] = 5 (DTYPE_CROM) 报告自己是CDROM类设备,然后按SPC-2(3/4) 和
MMC-4(见t10)的命令集处理host的CBW,然后在该disk FAT分区的根目录下加入autorun.inf其实这个在Microsoft的网站上就有说明:

  The USB Storage FAQ on the Microsoft site says "The Autorun capabilities are restricted to CD-ROM drives and fixed disk drives. If you need to make a USB storage device perform Autorun, the device must not be marked as a removable media device and the device must contain an Autorun.inf file and a startup application.

  The removable media device setting is a flag contained within the SCSI Inquiry Data response to the SCSI Inquiry command. Bit 7 of byte 1 (indexed from 0) is the Removable Media Bit (RMB). A RMB set to zero indicates that the device is not a removable media device. A RMB of one indicates that the device is a removable media device. Drivers obtain this information by using the StorageDeviceProperty request."

定义卷标是利用Label命令来完成的.

  label=dapeng

打开网页可以使用:

  open=start.exe yourfilenme.html(适用于9x/me)
  shellexecute=index.html(适用于2k/Xp/2003)

其实AutoRun.inf不仅可以改变磁盘图标,还能为磁盘右键增加很多命令,只需要在文件里加入如下语句即可。

  shell/标志=显示的鼠标右键菜单中内容

  shell/标志/command=要执行的文件或命令行

例如:

  shell/1=天若有情天亦老

  shell/1/command/=notepad ok.txt

实例:

  [AutoRun]
  Open=regedit/s Share.reg //加/s参数是为了导入时不会显示任何信息

Share.reg的内容为:

  REGEDIT4
  '此处一定要空一行,以下为添加C盘默认隐藏共享
  [HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Network/Lanman/C$]
  "Path"="C://"
  "Remark"=""
  "Type"=dword:00000000
  "Flags"=dword:00000302
  "Parmlenc"=hex:
  "Parm2enc"=hex:

  当flags=0x302时,重新启动系统,目录共享标志消失,表面上看没有共享,实际上该目录正处于完全共享状态。把"Flags"=dword:00000302改成"Flags"=dword:00000402,就可以看到硬盘被共享了

  关闭此功能的方法是打开注册表编辑器,找到

[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Exploer]在右侧窗格中有"NoDriveTypeAutoRun"这个键决定了是否执行autorun功能.默认它的值是95,即10010101.其中每一位代表一个设备,不同设备用以下数值表示:

设备名称          第几位 值 设备用如下数值表示   设备名称含义
DRIVE_UNKNOWN       0     1     01h           不能识别的类型设备
DRIVE_NO_ROOT_DIR   1     0     02h           没有根目录的驱动器
DRIVE_REMOVABLE     2     1     04h           可移动驱动器
DRIVE_FIXED         3     0     08h           固定的驱动器
DRIVE_REMOTE        4     1     10h           网络驱动器
DRIVE_CDROM         5     0     20h           光驱
DRIVE_RAMDISK       6     0     40h           RAM磁盘
保留                7     1     80h           未指定的驱动器类型

以上"0"表示设备运行,"1"表示设备不运行.更改注册表此键值可控制autorun.inf的运行!在默认情况下,会自动运行的设备是DRIVE_NO_ROOT_DIR、DRIVE_FIXED、DRIVE_CDROM、DRIVE_RAMDISK这四个保留设备,所以要禁止硬盘自动运行AutoRun.inf文件,就必须将DRIVE_FIXED的值设为1,这是因为DRIVE_FIXED代表固定的驱动器,即硬盘。如果仅想禁止软件光盘的AutoRun功能,但又保留对CD音频碟的自动播放能力,这时只需将“NoDriveTypeAutoRun”的键值改为:BD,00,00,00即可。"NoDriveTypeAutoRun”默认键值为95 00 00 00。

锁住注册表:
REGEDIT4

[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/System]

"DisableRegistryTools"=dword: 00000001

autorun文件格式简要介绍:
一>[AutoRun] Keys
1.action 为open和shellexecute运行的程序指定名称.
2.icon 指定驱动器图标
3.label 指定驱动器卷标
4.open 自动运行并打开指定文件
5.shellexecute 自动运行并打开指定文件(与open不同的是可以使用文件关联信息打开文件)
6.UseAutoPlay 值只能等于1.用来使用autoplay的V2特性,只支持Xp的sp2以上版本
7.shell 指定默认右键菜单名称
8.shell/verb 添加自定义右键菜单

二>[DeviceInstall] Keys

DriverPath=directorypath 用来指定搜索驱动的目录
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值