反病毒教程第8课:详解配制文件的修改

互联网 | 编辑: 黄蔚 2009-07-20 00:00:00转载 返回原文

在一个配制文件中,可以有多个字段,一个字段下也可以有多个关键字.字段名必须用中括号括起来.字段名,关键字,值等可以是中文,英文,各种符号等(一般英文居多).对于系统中的配制文件,字段名一定是固定的,关键字大都也是固定的,你不能随意更改成其他名称,只有后面的值才可以改,修

详解配制文件

点击此处访问 反病毒教程第1课

(注:本文中的“\”,如有需要体验或者使用,请替换成半角斜线)

这一课详细来讲一下几个配置文件.

配制文件的扩展名一般为.ini,内容的一般格式如下:

复制内容到剪贴板

代码:

[字段名]

关键字=值

在一个配制文件中,可以有多个字段,一个字段下也可以有多个关键字.字段名必须用中括号括起来.字段名,关键字,值等可以是中文,英文,各种符号等(一般英文居多).对于系统中的配制文件,字段名一定是固定的,关键字大都也是固定的,你不能随意更改成其他名称,只有后面的值才可以改,修改时也要符合一定的规则.

一.desktop.ini

这个文件在第5课中已经详细地讲过了,这里就不再讲了.

二.autorun.inf

还是先贴一下上一课中的那个文件的内容,上一课中讲得很简单,这一课继续讲,不要求完全掌握,只要知道上一课中的内容就行:

复制内容到剪贴板

代码:

[autorun]

open=progict1.exe

shell\open=打开(&O)

shell\open\Command=progict1.exe

shell\open\Default=1

shell\explore=资源管理器(&X)

shell\explore\Command=progict1.exe

第一行中的autorun是一个字段名,autorun.inf这个配制文件总共可以支持三个字段,另两个是 AutoRun.Alpha和DeviceInstall.autorun字段是每个autorun.inf文件心须有的并且所有windows系统都支持该处的配制(除非禁用了自动播放等),其他两个是可选的,AutoRun.Alpha适用于基于RISC的计算机光驱,而DeviceInstall则要求必须是XP及以上系统.下面一个个来具体说明:

[autorun]

1.Open

这个单词的意思为打开,也就是说当你打开设备(如磁盘,光盘,U盘)时,等号后面的命令(可执行文件)也会跟着执行,命令可以带参数,如ping 127.0.0.1,必须是.exe,.com,.bat等文件,其他文件需使用start.exe打开或使用ShellExecute命令,命令的起始目录必须是设备根目录或系统的Path环境变量中所指定的,否则将无法运行.

2.ShellExecute

功能与Open类似,但可以是任意格式的文件,系统会根据文件关联选择合适的程序打开它.比如你写一行ShellExecute=ratebbs.doc,当你双击时,系统将自动调用word程序来打开这个名为ratebbs.doc的文档(前提是这个文档必须存在).

3.Icon

用于指定盘符的图标,等号后为图标的路径,可以是.ico,.bmp,.exe,.dll.当文件格式为.exe和.dll时需要使用序号来指定图标,若不指定,则默认为0,文件路径与序号之间用半角逗号隔开,比如我可以这样写:Icon=E:\edu\antivirus\anti\anti.exe,0

4.DefaultIcon

这个是用于指定将被自动执行的程序的图标的,如果指定了另外一个图标,则原来程序的图标将不会显示,也就是说它的优先级高于程序本身显示的图标.设置方法和关键字Icon一样.

5.Label

用于指定磁盘的默认描述\卷标,默认为本地磁盘,卷标命名规则好像和文件名一样,不能包含一些特殊字符,可以有中文,空格等.

6.shell

这个说简单也简单,说复杂也复杂,因为自由度比较大,

复制内容到剪贴板

代码:

shell\open=打开(&O)

shell\open\Command=progict1.exe

shell\open\Default=1

中间都有一个open(标识),其实也可以换成其他名字的,但三行中必须同时更改才有效,第一行的效果是右击盘符时将出现一个名为打开的选项,后面的 (&O)的效果是指定快捷键.第二行的效果是当你选择打开时,运行指定的命令,第三行的效果为让这个命令出现在右键快捷菜单的最上面.Command意为命令行,它后面的设置方法和关键字open是一样的.

默认情况下,系统可以识别open,explore,find,ShellExecute等标识,也就是说当你使用这几个标识时只要写中间的那一行就可以了(第一行可以不写),使用其他标识时前两行必须有,且标识必须一致,举例如下:

复制内容到剪贴板

代码:

shell\ratebbs=反病毒(&A)

shell\ratebbs\Command=E:\edu\antivirus\anti\anti.exe

[AutoRun.alpha]

所有关键字的用法和[AutoRun]字段完全相同区别在于在基于RISC的光驱中,[AutoRun.alpha]优先级高于[AutoRun],也就是说如果同时设置了这两个字段,在基于RISC的光驱中,系统只识别[AutoRun.alpha]字段中的,[AutoRun]字段将被忽略.这个字段并不常用.

[DeviceInstall]

只有一个关建字DriverPath,用于指定驱动程序的搜索路径.Windows XP以上支持,一般用于驱动程序的自动安装,当你打开设备管理器,点更新驱动时,系统将自动搜索光盘以查找合适的驱动.如果没有这一字段,系统将全盘搜索.若有这一字段,但没有DriverPath关键字,则系统将不在此光盘中搜索驱动程序.

详解配制文件boot.ini

三.boot.ini

这是系统盘根目录下的一个文件,具有只读属性,修改前需先更改它的属性.该文件与开机时显示操作系统选择菜单有关,如果该文件丢失或配制错误将导致windows系统无法正常引导,所以修改前请一定要备份,以下为我装完XP系统后备份的boot.ini文件的内容.

复制内容到剪贴板

代码:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

[boot loader]

1,timeout

这个关键字指定开机时操作系统选择菜单的停留时间,单位为秒,当只有一个操作系统时,它的值将被忽略.

2,default

当超过timeout所指定的时间且你没有选择要进入的操作系统,将自动进入该值所指定的操作系统.该值必须是operating systems字段中已存在的关键字,否则将出错.

[operating systems]

这个字段下是所有操作系统的列表.上面的例子只有一个XP系统.所有只有一行.

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

说一下这个关键字的意思:

multi(0) 说明系统使用的是IDE,增强的IDE(EIDE)或增强的小型设备接口(ESDI)驱动器,或者没有内置BIOS的SCSI适配器.有的系统此处可能为 scsi(0)说明使用的是除上述以外的控制器.后面括号中的0表示第一个控制器(主控制器),如果有第二个,后面数字加1,即multi(1).

disk(0)表示使用的SCSI逻辑单元(LUN).它可以是独立的磁盘,但是大多数SCSI设置对每个SCSI ID只有一个 LUN,所以通常都是这个值.

rdisk(0)表示该操作系统位于第一个物理磁盘上.

partition(1)表该操作系统所有的磁盘分区,系统安装在C盘则为partition(1),若在D盘则为partition(2),后面的以此类推.

"Microsoft Windows XP Professional" /noexecute=optin /fastdetect

此处分两部分讲,关面双引号中的可以任意更改,它就是操作系统选择菜单所出现的名字.后面的是参数,参数一般不区分大小写.

/noexecute

该参数与数据执行保护(DEP)有关,其值为optin时表示开启,值为Optout时表示关闭.开启该项可以阻止某些恶意程序的执行,使恶意程序运行出错而退出.具体也可以到我的电脑,属性,高级,设置,数据执行保护处设置,如果你不知道DEP是什么,请单击DEP是如何工作的.

/fastdetect

系统启动时不检查串行口和并行口,可以加快系统的启动速度.

除上面两个参数之外,系统还支持很多其他参数.不要求掌握,大致了解就行.以下参数说明来自微软知识库文章(http://support.microsoft.com/kb/170756/en-us/)及本人的理解.

/3GB

使得用户模式程序能够访问3GB的内存,正常情况下通常为2GB,只适用于各NT系统非家庭版的SP3版.

/basevideo

强制用标准640x480 16色VGA模式启动系统.当视频分辨率,刷新速率出错或相关驱动出错时可使用此选项.

/BAUDRATE=nnnn

设置波特率的调试端口.如果没有设置波特率,默认波特率是19200.若通过调制解调器远程调试正常速率,此值为9600.例如/BAUDRATE=9600.

参数修改

/BOOTLOG

将系统日志写入%SystemRoot%\NTBTLOG.TXT,并非所有系统都支持.

/BURNMEMORY=nnnn

使系统在已知的内存上少使用指定的兆数,如果/burnmemory=128,则系统可使用的内存数将在原有基础上减少128M

/CRASHDEBUG

系统启动时,如果经常无故出错(一般是内核错误),这个参数就非常有用.

/DEBUG

在启动系统时调入调度器,它可以在任何时间激活,在错误可以再次出现时使用它比较合适

/DEBUGPORT=comx

指定用于调度的端口,其中的x就指端口号.

/HAL=

允许用户不使用默认的HAL.等号后的是一文件名,用于加载指定的内核.

/INTAFFINITY

设置多处理器HAL(HALMPS.DLL),使编号最大的处理器接收中断请求.如果不设置此选项,系统会使所有处理器接收中断请求.

/KERNEL=

与上面的/HAL功能类似,但它是针对SMP中的内核而言的.例/KERNEL=ntkrnlmp.exe,指定的文件必须位于%systemroot%/system32目录中

/MAXMEM:n

指定系统可以使用的最大内存数.

/NODEBUG

禁用内核调试器,蓝屏时不显示相应信息.

/NOGUIBOOT

不加载VGA驱动程序,不显示启动过程和失败时的蓝屏信息.

/NOSERIALMICE=[COMx|COMx,y,z...]

在特定的COM中上禁止对串行鼠标的检测.

/NUMPROC=n

只允许前n个处理器工作

/ONECPU

在多处理器中只使用一个处理器

/PCILOCK

不让系统为PCI设置分配IO/IRQ资源,从而无法在windows中更改BIOS设置.

/SAFEBOOT

以安全模式启动

/SOS

在调入驱动程序名时显示它的名字,在因驱动问题而无法启动时使用,从而知道是哪个驱动导致的问题.

/WIN95

在装有三个系统DOS,Win9x和Windows NT的系统上,让NTLDR直接调用Win9x启动文件BOOTSECT.W40

/WIN95DOS

在装有三个系统DOS,Win9x和Windows NT的系统上,让NTLDR直接调用DOS启动文件BOOTSECT.DOS

/YEAR=

使用指定的年份,如果设置为/YEAR=2005,那现在的时间就是2005年,此参数只对NT4+SP4和W2K生效.

两种方式修改boot.ini

一般情况下不建议直接编辑boot.ini文件,除非你有足够的把握不出错,修改前请备份.一般使用如下两种方式修改其部分设置.

1.我的电脑,属性,高级,设置(第三个).在这里可以进行不少的设置了,或者点击编辑进行自定义设置.

2.开始,运行,输入msconfig,boot.ini,要使用哪些参数直接在下面,或高级中相应选项前打勾就行了,以防止出错.

以下是我目前的boot.ini文件的内容:

复制内容到剪贴板

代码:

[boot loader]

timeout=30

default=C:\PSALDR

[operating systems]

C:\PSALDR="microsoft windows xp professional"

C:\PSBLDR="microsoft windows xp professional 单一影子模式"

multi(0)disk(0)rdisk(0)partition(1)\windows="microsoft windows xp professional 完全影子模式" /fastdetect

c:\grldr=maxdos_5.0e 工具箱

c:\arldr=microsoft dos 7.1

不知大家装过影子系统2008没,装完后关键字default的值被改成了C:\PSBLDR,也就是说超时未选择操作系统的话,默认会进入单一影子模式,把它改成C:\PSALDR默认就会进入正常模式.

c:\grldr,c:\arldr,C:\PSBLDR等都是用于启动相应系统的文件,等号后面的可任意修改.

system.ini修改

四.system.ini

曾经是一个非常重要的系统配制文件,早期的病毒或木马常修改这个文件达到开机就启动的目的,现在已经不多见了,但仍然有.NT系统中,几乎所有配制已集成到注册表中,因此现在这个文件的内容比较少了,但仍很有用,系统每次启动都会修改这个文件的内容,不信你可以查看其属性,修改时间.该文件位于%systemroot%/system.ini.也可以通过msconfig来修改..

该文件的配制是相关复杂的,这里只讲和病毒有关的字段及关键字.

[boot]字段的shell=Explorer.exe

注册表位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,键名shell,正常值为Explorer.exe,不正常时可能为Explorer.exe,anti.exe

[386Enh],[mic],[drivers],[drivers32]等字段的driver=驱动程序文件路径.

与驱动有关的注册表路径如下:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfiles

五.Win.ini

和system.ini一样,是一个非常重要且相当复杂的配制文件,幸好,大多数配制已集成到注册表.这里也只讲与病毒加载有关的字段和关键字.

[windows]字段的load和run.

关键字load的注册表路径HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows,键名load.

关键字run的注册表路径同上,键名为run,正常情况这两个键并不存在或其值为空.

六.Wininit.ini

这个文件用于重启时修改或删除文件用的.有些正在运行中的文件是无法被修改或删除的,于是可以用这个文件的配制在下次开机时修改或删除(在这些文件没被加载前),修改或删除成功后,该文件消失,所以一般情况下是看不到这个文件的. 该文件的功能亦被集成到注册表中,注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\FileRenameOperations

类型为REG_MULTI_SZ

不能直接编辑该处的键及值,通常是通过API函数MoveFileEx来实现的.

wininit.ini的[rename]字段

关键字是一个文件名,值也是一个文件名,重启时,系统将用值的文件替换关键字的文件,并把值的文件删除.

如果关键字所指定的文件不存为,则实际上是将值所指定的文件重命名为关键字所指定的文件.

如果关键字为nul,则实际上是将值所指定的文件删除.

如:C:\WINDOWS\explorer.exe=C:\WINDOWS\TASKMAN.EXE

文件名必须是完整路径.

七.AUTOEXEC.BAT

不属于配制文件,而是一上批处理文件,但也常被病毒利用,正常情况下该文件没有任何内容,大小为0字节.

这个文件用于存放系统启动时自动执行的命令(一个特殊的批处理文件).如果发现该文件的内容为一可执行文件名,请一定要注意了.

八.CONFIG.SYS

虽然扩展名为sys,但他实际上是一个文本文件(可以用记事本来打开),正常情况下也是空的.如果该文件被改动,应引起注意,特别是device=文件名等这样的配制,系统启动时将加载指定的驱动文件.这个文件就相当可疑.

以上是能和病毒扯上一些关系的配制文件.在NT内核系统中,大多数配制已集成进注册表,但配制文件仍然有效.

点击此处访问 反病毒教程第1课

(注:本文中的“\”,如有需要体验或者使用,请替换成半角斜线)

返回原文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑