光盘自动运行程序的秘密

来源:互联网 发布:c语言期末考试题库 编辑:程序博客网 时间:2024/05/19 03:25
光盘自动运行程序的秘密。光盘一放入光驱就会自动被执行,主要依靠两个文件,一是光盘上的。Cdvsd.vxd会随时侦测光驱中是否有放入光盘的动作,如果有的话,便开始寻找光盘根目录下的AutoRun.inf文件。其中[AutoRun]为固定标志,而其下"Open="后为要自动运行的程序,假设我们希望放入光盘后能自动运行光盘中setup.exe文件(假设在光盘的根目录下),可改为:Open=setup.exe;

制作:制作AUTO-CD的关键就是如何编写自动运行信息文件Autorun.inf,它是AUTO-CD所必须的。这个文件的主要作用就是告诉Windows自动运行哪个程序和它的启动路径,并为光盘设置在资源管理器及“我的电脑”中所显示的图标。但是,如果关闭了光驱的自动插入通告功能,则只能使用Shell32.DLL(存于Windows的System目录下)中的默认光盘图标。
打开一些AUTO-CD中的Autorun.inf,你会发现它的编写格式是:
[AutoRun]
open=……
icon=……
[AutoRun]是针对PC机(机型为386或更高)的自动运行识别标志。除此之外,还有针对其他几种计算机系统的识别标志,它们是:针对MIPS公司MIPS系统的[AutoRun.mips];针对DEC公司Alpha系统的[AutoRun.alpha];针对苹果公司Power PC机的[AutoRun.ppc]。不过,除非你想制作通用的自动运行光盘,否则用不到这些标识。
open一行是告诉操作系统要自动运行的文件名和它的启动全路径。比如,若想自动运行Autorun目录下的Run.exe文件,这一行就写成:
open=Autorun\Run.exe
注意,在目录名的左边不能有反斜线,否则计算机将按“C:\”处理,也就无法启动指定的程序了。
icon一行是告诉操作系统该光盘以什么样的图标表示,如果你不想指定,这一行也可以不写。

图标的调用方法有三种:
第一种是直接指向图标文件(.ico)。比如要想使用在Autorun目录下的一个图标文件Run.ico,调用格式与open一行相同,即:icon=Autorun\Run.ico
第二种调用方法就是指向带有图标的exe文件,只要是For Windows 9x/NT的exe文件都带有图标。而且,如果该文件带有多个图标还可以用编号进行挑选。比如所选的是Run.exe,它带有5个图标,其第一个也是默认图标的调用格式为:icon=Autorun\Run.exe或icon=Autorun\Run.exe,0
若想调用第三个图标,格式为:icon=Autorun\Run.exe,2
   因为第一个图标的编号是0,所以第三个图标的编号就是2了。另外,在逗号的两 边都不能有空格,否则就调用默认的图标。而且,若调用的编号大于其最大编号,那光盘的图标就为空,什么也没有。可能有人会问,我怎么知道目标文件带有几个图标?不用着急,跟着我做:用鼠标右键点击任意一个带有图标的exe文件的“快捷方式”——在快捷菜单中选择“属性”——选择“快捷方式”——点击“更改图标…”——用“浏览…”的方式打开你选择的目标文件,现在你就能看到该文件到底有多少个图标了。至于图标的排列顺序在Windows 95中是从左至右,在Windows 98中则是先上下后左右,不要数错哟。
第三种调用方式就是指向带有图标的DLL文件,也就是动态链接库文件,具体的格式与注意事项都与第二种方法相同,在此就不作介绍了。
   至此,一个完整的Autorun.inf文件就编辑完成了,结合你需要烧录的内容,在确认调用路径无误后,就可以开始烧录了。此时唯一要注意的就是Autorun.inf文件必须放在光盘的根目录下,否则Windows无法找到它,也就不能自动运行了。

 

光盘一放入光驱就会自动被执行,主要依靠两个文件,一是光盘上的.

AutoRun.inf文件,另一个是操作系统本身的系统文件之一的Cdvsd.vxd/Shell32.dll。

Cdvsd.vxd会随时侦测光驱中是否有放入光盘的动作,如果有的话,便开始寻找光盘根目录下的AutoRun.inf文件。如果存在AutoRun.inf文件则执行它里面的预设程序。

打开其中的AutoRun.inf文件,其中有三行代码:

[AutoRun]

Open=SmartCar.exe

Icon=SmartCar.ico

   其中[AutoRun]为固定标志,而其下“Open=”后为要自动运行的程序,假设我们希望放入光盘后能自动运行光盘中setup.exe文件(假设在光盘的根目录下),可改为:Open=setup.exe;而其下的“Icon=”后为光盘所要显示的图标文件,这样便可使光盘显示为该个性化图标

而在一些光盘放入后,我们在其图标上单击鼠标右键,还会产生一个具有特色的目录菜单,其实它也仅仅是在AutoRun.inf文件中添加以下两条语句便可完成:shell\标志=显示的鼠标右键菜单中内容shell\标志\command=要执行的文件或命令行如:shell\1=打开说明sehll\1\command\NOTEPAD\说明.txt

若在右键菜单中单击“打开说明”,则会自动打开光盘中“说明.txt”文件。注意:上面示例假设“说明.txt”文件在光盘根目录下,NOTEPAD为系统自带的记事本程序。如果要执行的文件为直接可执行程序,则在“comamd\”后直接添加该执行程序文件名即可。AutoRun.inf文件除了可手工编写外,也可用工具软件制作。

Autorun.inf文件,严格的说它是一个必须存放在驱动器根目录下的有一定格式的文本文件,它是由一个或多个“节”组成,每个“节”民须以节名作为开始的一行,节名必须用中括号[]括起来,节名之下则为本节中的命令。

 文本文件是没有根目录的。AUTORUN.inf文件作为文件夹出现有可能是病毒
 
Autorun.inf文件到底有哪些应用
 (1)自动运行 自动运行在前文有所接触,即使用Open命令进行,要注意的是“Open=”指定的文件必须为可执行文件,例如com、exe、bat;如果指定的文件不在根目录下,则需要指定其路径,例如Open=soft.bat,这就表示运行光盘根目录下soft文件夹中的1.bat文件。 
小提示:如果要运行的文件不是com、exe、bat,那么也没关系,我们可以手工编写一个bat文件,将要打开的文件所在路径和文件名添加在bat之中即可。
 (2)自定义光盘图标 
在Autorun节中,还有一个比较好玩的命令行,那就是icon,一般情况下指定的图标文件可以是ico和bmp格式,当然也可以是包含图标资源的exe和dll文件,如果exe和dll文件中包含多个图标文件,那么就必须指定希望使用的图标索引号,要注意的是图标索引号是从0开始编号的,例如“icon=icon.dll,1”,那么就表示将使用icon.dll文件中的第二个图标。 
小提示:icon不仅可以应用在光盘上,我们也可以将该命令编写进autorun.inf文件放置在硬盘根目录自定义硬盘的图标。 
(3)自定义卷标 虽然说光盘刻录软件中一般都可以设置光盘卷标,但是如果要批量刻录的话,那就会显的很麻烦,不如使用命令定义的快捷。 
定义卷标是利用Label命令来完成的,它的语法和Open、Icon是一样的,在这里不再多述。
 (4)添加右键菜单 当我们右击刻录的光盘时,经常会在右键菜单中发现一个自动播放的选项,其实这主要是利用Autorun.inf中的Open命令来实现的,其实我们还可以根据需要添加其它菜单命令。添加其它菜单命令的格式是“Shell<菜单命令名>Command=<要执行的文件>”,例如我们编写了一个文件内容如下:[autorun] shell打开记事本command=notepad.exe这样当我们将该文件刻录进光盘时,右击光盘时在弹出菜单中就会有一个“打开记事本”的命令了。
 (5)改变缺省操作 一般情况下应用autorun.inf的光盘双击缺省操作大多是自动播放,即执行open后面的文件操作。其实我们也可以改变这种情况,而这同样是利用shell命令来完成。我们先来看一个典型双击安装软件的示例: 
[autorun] 
shellsetupcommand=softsetup.exe 
shell readme=安装软件 
shell=setup 
要看懂这段语句,我们可以从下向上看,当我们双击光盘时,将调用最后一句Shell=setup,因为设置了该句,那么双击时将查找对应Shellsetupcommand后面指定的命令来作为默认操作,因此默认的操作将变成执行光盘根目录下的soft文件夹中的setup.exe文件。在这里主要介绍的是autorun节内容的应用,而对于autorun.alpha来说我们很少用到,而Deviceinstall只能在WindowsXP下使用,可以利用它指定硬件向导进行递归搜索的子目录。


 

另外:autorun可以被黑客利用,我们可以关闭自动运行,让它不能发生作用 方法禁止硬盘的自动运行:注册表编辑器展开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Exploer主键下,右边窗口中的二进制值“NoDriveTypeAutoRun”决定了是否执行AutoRun功能,将“NoDriveTypeAutoRun”的默认键值由95,00,00,00,改为9D,00,00,00,然后关闭注册表编辑器,重启电脑即可。只禁止光盘的自动运行,可以将“NoDriveTypeAutoRun”的键值改为BD,00,00,00 

一.理解autorun.inf文件

简单的说autorun.inf文件是一种具有特定结构的必须放在驱动器根目录下的文件.它控制着双击驱动器时的自动播放选项. 
二.autorun.inf文件构造
所有的autorun.inf文件都具有[autorun]节,这是自动运行标识符.
不同的机型具有不用的自动运行标识符.
[autorun]是针对PC机(机型为386或为更高)的自动运行标识符. 
[autorun.mips]是针对MIPS公司的MIPS系列机型. 
[autorun.alpha]是针对DEC公司的alpha系列机型. 
[autorun.ppc]是针对apple公司的PowerPC系列机型. 
此外,还有[DeviceInstall]节,这个仅在XP系统下使用,可以用它来指定硬件向导进行递归搜索时的子目录. 
三.autorun.inf文件的编写 
1.自动播放.若想在驱动器右键生成自动播放菜单项,点击时可以自动运行.可分为以下两种情况: 
  (1).shellexecute=*.*或[path\]*.*,此种方式可以在所有的驱动器上生成自动播放菜单项.双击时自动运行=后的文件.此时=后可以为任意扩展名的文件. 
  (2).open=*.exe,*.bat,*.com,此种方式仅可以在光盘驱动器上生成自动播放菜单项.=后的文件必须是exebat com 
2.自定义驱动器图标 
格式:icon=[path\]*.ico,*.bmp或是[path\]*.exe[,0,1,2...]*.dll[,0,1,2...]注意path路径必须是本驱动器的路径,即ico bmp exe dll必是在本驱动器内. 
3.自定义卷标 
格式:label=字符串,这个简单.不赘述. 
4.添加右键菜单 
格式:shell\n=名称 shell\n\command=命令 两者合成:shell\名称\command=命令[说明]shell指菜单,n可以为任意字符串,名称即你想要的右键菜单名称.命令即你在单击该菜单项时执行的命令. 
下面讲讲病毒防治的方法: 根据windows同一目录下不能共存两个或两个以上文件(夹)的方法,我们可以在U盘目录下,手动创建一个名为autorun,inf的文件.若是我们新建的是一个文件,即autorun,inf文件的话,病毒文件完全可以覆盖,我们就达不了病毒防治的目的.因而我们应该新建一个名为autorun.inf的文件夹.下面给出一个批处理代码,把它保存为bat文件,在U盘的根目录下运行即可:md autorun.inf cd autorun.inf md prn\ md pig..\ 资料3windows支持自动运行,是通过autorun.inf来实现的。
下面介绍下简单auto文件的编写。 
首先,我们用新建文本文档,然后在里面输入 [autorun]shellexecute=***.***(*表示你要自动运行的文件,可以是任意文件) icon=***.ico然后另存为autorun.inf文件就可以了。 shellexecute后面可以是任意文件。如果是木马的话...然后icon后面是图标文件,也可以使用其他文件的图标,格式为icon=***.***,0就可以了。把他放入u盘里双击就可以运行shellexecute(在98系统中是open)后的文件了。光盘里面都有这个文件,但是光盘有时能自动打开,这是因为系统中有另外的文件专供光区的自动运行,而不支持USB设备. 
autorun.inf的代码编写 
制作AUTO-CD的关键就是如何编写自动运行信息文件Autorun.inf,它是AUTO-CD所必须的。这个文件的主要作用就是告诉Windows自动运行哪个程序和它的启动路径,并为光盘设置在资源管理器及“我的电脑”中所显示的图标。但是,如果关闭了光驱的自动插入通告功能,则只能使用Shell32.DLL(存于Windows的System目录下)中的默认光盘图标。打开一些AUTO-CD中的Autorun.inf,你会发现它的编写格式是: [AutoRun] open=……icon=…… 
[AutoRun]是针对PC机(机型为386或更高)的自动运行识别标志。除此之外,还有针对其他几种计算机系统的识别标志。 
open一行是告诉操作系统要自动运行的文件名和它的启动全路径
比如,若想自动运行Autorun目录下的Run.exe文件,这一行就写成: open=Autorun\Run.exe注意,在目录名的左边不能有反斜线,否则计算机将按“C:\”处理,也就无法启动指定的程序了。
icon一行是告诉操作系统该光盘以什么样的图标表示,如果你不想指定,这一行也可以不写。
图标的调用方法有三种: 
第一种是直接指向图标文件(.ico)。比如要想使用在Autorun目录下的一个图标文件Run.ico,调用格式与open一行相同,即:icon=Autorun\Run.ico 
第二种调用方法就是指向带有图标的exe文件,只要是For Windows9x/NT的exe文件都带有图标。而且,如果该文件带有多个图标还可以用编号进行挑选。比如所选的是Run.exe,它带有5个图标,其第一个也是默认图标的调用格式为:icon=Autorun\Run.exe或icon=Autorun\Run.exe,0 若想调用第三个图标,格式为: icon=Autorun\Run.exe,2因为第一个图标的编号是0,所以第三个图标的编号就是2了。另外,在逗号的两边都不能有空格,否则就调用默认的图标。而且,若调用的编号大于其最大编号,那光盘的图标就为空,什么也没有。
第三种调用方式就是指向带有图标的DLL文件,也就是动态链接库文件,具体的格式与注意事项都与第二种方法相同,在此就不作介绍了。至此,一个完整的Autorun.inf文件就编辑完成了,结合你需要烧录的内容,在确认调用路径无误后,就可以开始烧录了。此时唯一要注意的就是Autorun.inf文件必须放在光盘的根目录下,否则Windows无法找到它,也就不能自动运行了。 


病毒的防治:

首先,autorun.inf这个文件是很早就存在的,在WinXP以前的其他windows系统(如Win98,2000等),需要让光盘、U盘插入到机器自动运行的话,就要靠autorun.inf。这个文件是保存在驱动器的根目录下的(是一个隐藏的系统文件),它保存着一些简单的命令,告诉系统这个新插入的光盘或硬件应该自动启动什么程序,也可以告诉系统让系统将它的盘符图标改成某个路径下的icon。所以,这本身是一个常规且合理的文件和技术。
通过这个autorun.inf文件,可以放置正常的启动程序,如我们经常使用的各种教学光盘,一插入电脑就自动安装或自动演示;也可以通过此种方式,放置任何可能的恶意内容。 
目前相关的U盘病毒的隐藏方式: 
一种是假回收站方式:
病毒通常在U盘中建立一个“RECYCLER”的文件夹,然后把病毒藏在里面很深的目录中,一般人以为这就是回收站了,而事实上,回收站的名称是“Recycled”,而且两者的图标是不同的: 
另一种是假冒杀毒软件方式:
病毒在U盘中放置一个程序,改名“RavMonE.exe”,这很容易让人以为是瑞星的程序,其实是病毒。也许有人会问,为什么在你的机器上能看到上面的文件,我的机器看不到呢?很简单,通常的系统安装,默认是会隐藏一些文件夹和文件的,病毒就会将自己改造成系统文件夹、隐藏文件等等,一般情况下当然就看不到了。要让自己能看到隐藏的文件,怎么办?个人如操作,按如下步骤:打开“我的电脑”,在菜单栏上点“工具”,点“文件夹选项”,出现一个对话框,选择“查看”标签,然后对照下图:如果U盘带有上述病毒,还会一个现象,当你点击U盘时,会多了一些东西:上图左侧是带病毒的U盘,右键菜单多了“自动播放”、“Open”、“Browser”等项目;右侧是杀毒后的,没有这些项目。 
这里注明一下:凡是带Autorun.inf的移动媒体,包括光盘,右键都会出现“自动播放”的菜单,这是正常的功能。 
综上所述: 引用 
• 目前的U盘病毒都是通过Autorun.inf来进入的; 
• Autorun.inf本身是正常的文件,但可被利用作其他恶意的操作; 
• 不同的人可通过Autorun.inf放置不同的病毒,因此无法简单说是什么病毒,可以是一切病毒、木马、黑客程序等;
• 一般情况下,U盘不应该有Autorun.inf文件;* 
•如果发现U盘有Autorun.inf,且不是你自己创建生成的,请删除它,并且尽快查毒; 
•如果有貌似回收站、瑞星文件等文件,而你又能通过对比硬盘上的回收站名称、正版的瑞星名称,同时确认该内容不是你创建生成的,请删除它; 
•同时,一般建议插入U盘时,不要双击U盘,另外有一个更好的技巧:插入U盘前,按住Shift键,然后插入U盘,建议按键的时间长一点。插入后,用右键点击U盘,选择“资源管理器”来打开U盘。
注:*:部分U盘制造商可能也会利用Autorun.inf进行自己的特色设计,目的是为了让用户执行厂商的特色程序。已确认部分厂商确实使用了这种方式,因此建议购买U盘是先做识别,或咨询销售人员。 

原创粉丝点击