注册表全面讲解之了解注册表结构和用途
文章来自杂志和网络望大家妥善利用
什么是注册表与注册表的作用
注册表(Registry)是微软公司从Windows95系统开始(至目前最新Win2000系统依然使用的是它),引入用于代替原先Win32系统里.ini文件,管理配置系统运行参数的一个全新的核心数据库。在这个数据库里整合集成了全部系统和应用程序的初始化信息;其中包含了硬件设备的说明、相互关联的应用程序与文档文件、窗口显示方式、网络连接参数、甚至有关系到计算机安全的网络享设置 。它与老的win32系统里的ini文件相比,具有方便管理,安全性较高、适于网络操作等特点。
(以下分割符内的内容,摘自《新潮电子》98年第六期 作者:何宗琦 )
在形式上,注册表与INI文件有两个显著的特点:
1.注册表采用的是二进制形式登录数据,INI文件采用的则是简单的文本形式登录数据
2.注册表支持子关键字,各级子关键字都有自己的“键值”,INI文件中则支持节以及节中的参数。
在功能上,注册表与.INI文件相比,主要有以下三个特点:
1.注册表允许对硬件、某些操作系统参数、应用程序和设备驱动程序进行跟踪配置,这使得某些配置的改变可以在不重新启动系统的情况下立即生效。
2.注册表中登录的硬件部分数据可以用来支持Win95的即插即用特性。当Win95检测到机器上的各种设备时,就把有关数据保存到注册表中。通常是在安装时进行这种检测的,但Win95启动或原有配置改变时,也要进行检测。如安装一个新的硬件时,Win95将检查注册表,以便确定哪些资源已被占用,这样就可以避免新设备与原有设备之间的资源冲突。
3.通过注册表,管理人员和用户可以在网络上检查系统的配置和设置,使得远程管理得以实现。
预定义关键字
注册表采用“关键字”及其“键值”来描述登录项及其数据。所有的关键字都是以“HKEY”作为前缀开头。实际上,关键字是一个句柄。这种约定使得应用程序开发人员可以在使用注册表API时把它用于程序之中。为此,Win95提供了若干API函数,以便在开发Win95应用程序时添加、修改、查询和删除注册表的登录项。关键字可以分为两类:一类是由系统定义的,通常称为“预定义关键字”;另一类是由应用程序定义的,安装的应用软件不同,其登录项也就不同。
由于注册表保存的信息中,含有许多系统启动时必要的参数,一旦出现问题将导致系统崩溃等严重后果,此外由于注册表里含有许多的无法通过操作系统本身进行操作的系统参数,因此了解并学会使用注册表,对每一个老鸟来讲都是一件不可缺少。
注册表编辑工具Regedit
Regedit.exe是微软提供的一个用于编辑注册表的工具,它为所有windows系统自带,因此可以说是最通用的注册表编辑工具。由于Windows系统没有提供运行这个应用程序的菜单项,因此必须手动启动它,启动方法很简单:首先打开'开始菜单(Start)'里的'运行(Run)' 菜单项,如图一所示在对话框中输入regedit并点确定。这时将出现regedit的主界面,如图二所示:
Regedit这个工具可以对注册表进行添加修改主键、键值,备份注册表,局部导入导出注册表等操作。
(以下分割符内的内容,摘自《WIN98注册表编辑器的常用操作》一文 作者:天津 杨玉琦 )
将注册表中的所有内容导出到一个文本文件中
1.在注册表编辑器中单击“我的电脑”将导出所有注册表信息,或者单击 一个文件夹仅仅导出该文件夹下内容的注册信息;
2.在“注册表”菜单上单击“导出注册表文件”;
3.单击“浏览”为导出的文件寻找一个存储位置,即文件夹,然后为之输入一个文件后保存。 这样导出的注册表信息文件,可以在任何一种文本编辑器中编辑。添加主键:
1.打开注册表列表,找到要添加主键的文件夹;
2.右击要加入主键的文件夹;
3.将鼠标指向“编辑”菜单下的“新建”,然后单击“主键”;
4.新的主键是以一个临时名字显示的,为新的主键输入一个名字,然后回车即可;如果添加新的主键后,导致了计算机不能正确启动的情况,可以恢复注册表信息。
添加键值
1.打开注册表列表,选中要添加新键值的文件夹;
2.右击要添加新键值的文件夹;
3.将鼠标指向“新建”,然后单击需要添加键值的类型。这些类型包括“字符串值”、“二进制值”和“DWORD”值;
4.新添加的键值以一个临时键值显示,为新添加的键值输入一个新的值,然后回车即可
REGEDIT的命令格式:
(以下分割符内的内容,摘自《如何修复WIN95的注册表》一文 作者:忻儿 )
功能:引入注册表文件和导出注册表文件
REGEDIT[/L:system][/R:user]filename1
REGEDIT[/L:system][/R:user]/C filename2
REGEDIT[/L:system][/R:user]/E filename3 [regpath]
其中:
/L:system 指定system.dat文件的存放位置。
/R:user 指定user.dat文件的存放位置。
filename1 指定引入到注册表数据库的文件名。
/C filename2 指定形成注册表数据库的文件名。
/E filename3 指定导出注册表文件的文件名。
regpath 指定导出注册表文件的开始关键字(缺省为全部关键字)
保存注册表信息的文件
在win95或win98系统中,注册表的组成从物理上来讲,实际上是由两个分别名为user.dat及system.dat的具有隐藏只读属性的二进制系统文件。在system.dat文件中保存有计算机上现有安装软件的信息,已发现的硬件以及其配置信息。User.dat则了保存与用户相关的信息,包括个性化设置(包含颜色,显示属性,鼠标,字体等等)访问性设置、国家区域设置等。
而在最新的Win2000系统中情况则有所不同
(以下分割符内的内容,摘自《Windows2000注册表的备份与恢复》一文 作者:不详 )
同Windows 9X一样,Windows 2000的注册表也分为两个部分,但包括多个文件,其中用户配置文件保存在根目录“Documents and Settings”下用户名的目录中,包括两个隐藏文件:NTUSER.DAT、NTUSER.INI及ntuser.dat.LOG曰志文件。系统配置文件位于Windows 2000系统目录下的“SYSTEM32\CONFIG”中,包括DEFAULT、SOFTWARE、SYSTEM、AppEvent.Evt、SecEvent.Evt、SysEvent.Evt等多个隐藏文件及其相应的.LOG(曰志)文件和.SAV文件。这些注册表文件在Windows 2000运行时无法使用其它工具打开,这一点与Windows 9X下的system.dat及user.dat不同。
注册表结构分析
呵呵,进入关键所在了。要想玩转注册表,不弄清楚注册表的结构可不行!下面是摘自各个大虾的对注册表结构的精华论述。
(以下分割符内的内容,摘自《新潮电子》98年第六期 作者:何宗琦 )
HKEY_CLASSES_ROOT
该主关键字包含了有关的OLE信息,以便在系统工作过程中实现对各种文件和文档信息的访问。具体的内容有已经注册的文件扩展名、文件类型、文件图标等。
HKEY_USERS
PC用户都可以在这里设置自己的关键字和子关键字。根据当前登录的用户不同,这个关键字又可以指向不同的分支部分。这个分支部分将映射到HKEY_CURRENT_USER关键字中。用户根据个人爱好设置的诸如桌面、背景、开始菜单程序项、应用程序快捷键、显示字体、屏幕节电设置等信息均可以在这个关键字中找到。本关键字中的大部分设置都可以通过控制面板来修改。如果用户登录到系统中的信息,没有预定义的登录项,则采用本关键字下面的“Default”子关键字(如图2) 。
HKEY_CURRENT_USER
HKEY_CURRENT_USER是一个指向HKEY_USERS结构中某个分支的指针,它包含当前用户的登录信息。实际上它就是HKEY_USERS\Default下面的一部分内容,如果在HKEY_USERS\Default下面没有用户登录的其它内容,那么这两个主关键字包含的内容是完全相同的。
HKEY_LOCAL_MACHINE
该关键字包含了本地计算机(相对网络环境而言)的硬件和软件的全部信息。当系统的配置和设置发生变化时,本关键字下面的登录项也将随之改变。
HKEY_CURRENT_CONFIG
这个关键字实际上也是指向HKEY_LOCAL _MACHINE\Config结构中的某个分支的指针。HKEY_CURRENT_CONFIG下面的子关键字及内容与HKEY_LOCAL _MACHINE\Config\0001分支下面的子关键字及内容是完全相同的。本关键字包含的主要内容是计算机的当前配置情况,如显示器、打印机等可选外部设备及其设置信息等,而且这个配置信息均将根据当前连接的网络类型、硬件配置以及应用软件的安装不同而有所变化。
HKEY_DYN_DATA
顾名思义,本关键字包含了系统运行中的动态数据-即已发生的事件的有关信息。因此这个关键字的内容不仅包含系统硬件的当前状态,也包含了那些需要更新和检索的数据。这些数据都是动态变化的,它们总是最新的信息。WIN95每次启动时都将重新建立这个关键字。为了提高工作速度,HKEY_DYN_DATA实际上是存放在内存(RAM)中的,因此如果发生了对于注册表内容的修改,则不必立即写入磁盘。这对于提高系统的速度是十分必要的
(以下分割符内的内容,摘自《Windows98注册表大揭秘》 作者:徐洪云 )
1、HKEY_CLASSER_ROOT
该份之下至少包括100个关键字,这个分支下主要包括OLE数据,还包括文件扩展名和文件或应用程序的关联,改变改分支中的数据结构和内容将直接影响到系统软件的应用,此下的信息都被保存在system.dat文件中。
2、HKEY_USER
在这个关键字下显示的信息都保存在User.dat文件中,这包含了与具体用户有关的desktop(桌面)配置、网络连接以及start菜单。如果用户的计算机被配置为使用户的配置文件,那么系统就会为每个用户都创建一个单独的User.dat文件。当一个用户登录到计算机上时,Windows98将读取那个用户的user.dat文件,并把该文件放入内存中的Registry中。
3、HKEY_CURRENT_USER
它是适用于当前用户的HKEY_ USER部分。如果只有一个用户,即确省用户,那么HKEY_USER\.Default和HKEY_CURRENT_USER是相同信息的不同的显示方式。
4、HKEY_LOCAL_MACHINE
这是针对计算机硬件以及安装的软件所设定的分支。如果计算机有多个硬件配置,那么每个配置的信息都保存在这里。如果你察看一下该分支下的SOFTWARE下面的信息,你会发现生产已安装软件的公司的名字都在这儿了,这个分支为关于每个公司产品的与具体机器有关的信息存放提供一个方便的地方。在这儿,你还可以发现应用程序名字、版本数、应用程序路径名以及以及硬件设置。Microsoft也使用这个分支注册它的软件。
5、HKEY_CURRENT_CONFIGURATION
在这里用户可以找到显示设置情况和使用的打印机。
6、HKEY_DYN_DATA
这里保存了Windows操作性能参数的数据,当Windows98加载后,该信息被保留在RAM中,同时被不断更新。
下面是各个子键的比较详细的介绍,看了上面还不满足的朋友请看,:)
(以下分割符内的内容,摘自《新潮电子》98年第六期 作者:何宗琦 )
HKEY_CLASSES_ROOT关键字
该关键字由多个子关键字组成,具体可分为两种:一种是已经注册的各类文件的扩展名,一种是各种文件类型的有关信息。图1左窗格中的子关键字就是各种已经注册的文件扩展名。
注册表内登录的文件扩展名中,一部分是系统约定的扩展名,另一部分是由应用程序自定义的扩展名。应用程序只有把自定义的扩展名登录到注册表中,系统才能识别和关联使用有关的文档,即只有经过注册的扩展名,系统才能自动关联。
当选中某个扩展名关键字时,在窗口的右窗格中将显示出有关的键值。例如在图1里选中“.avi ”时,从其键值可以看出,对该扩展名将默认为动画文件(avifile)。在HKEY_CLASSES_ROOT 关键字中也包含了该类型文件的详细信息。仍然以avifile文件为例,移动滚动条可以找到子关键字“AVIFile”, 选中AVIFile可以看到其键值默认为“视频剪辑”,表示可以对.avi文件进行编辑、播放等操作。单击AVIFile左边的“+”号,可以看到如图2所示的树型子关键字。
第一个子关键字是“CLSID”,即“分类标识”,在选中它时可以看到其默认的键值,如图3所示。系统可用这个标识号来识别相同类型的文件。
在 HKEY_CLASSES_ROOT主关键字下也有一个子关键字“CLSID”,其中包含了所有注册文件的类标识。因此也可以通过类标识来查找相关文件的各种信息。图4即是通过类标识查找AVIFILE文件的例子。可以看到在该标识字下面还有10个子关键字,它们的键值也同样表示了AVIFILE文件的有关信息。
下面我们把AVIFile的全部子关键字展开,来看看它包含了哪些有关的信息。展开全部子关键字后的窗口如图5所示。
“Compressors”(压缩程序)下面的两个子关键字“auds”和“vids”分别给出了音频和视频数据压缩程序的类标识,通过这些类标识可以找到相应的处理程序。
“DefaultIcon”的键值为:“c:\pwin95\mplayer.exe,3”,表示文件的默认图标是mplayer.exe文件中提供的第3号图标。
把“DefaultIcon”的键值改为:“c:\pwin95\mplayer.exe,4”,则采用图6中的第4号图标作为.avi文件的图标。
“Extensions”的作用是通过文件扩展名识别数据文件。它的3个子关键字中,AVI表示AVI文件,AV和WAV表示音频文件。
“Insertable”是插入表。
“protocol”包含了执行程序和编辑程序的路径和文件名。
打开“StdExecute”(标准执行程序)下面的子关键字“Server”,可看到键值为:“c:\pwin95\mplayer.exe/avi”,即指定了执行程序的路径和文件名。
打开“StdFileEditing”(标准文件编辑程序)下面的子关键字“Server”,可看到键值仍然为:“c:\pwin95\mplayer.exe/avi”,即编辑程序的路径和文件名。
“verb”下面的3个子关键字0、1、2键值表示程序的工作状态,分别为“播放”、“编辑”和“打开”。“RIFFHandlers”表示相关文件句柄,包含了AVI和WAVE文件的类标识。
“shell”包含了执行“打开”和“播放”命令的程序路径和文件名。它们在各自的“command”中列出的键值分别为“c:\pwin95\mplayer.exe %1”和“c:\pwin95\ mplayer.exe/play/close %1”。
“shellex”中包含了“多媒体文件属性表”(AviPage)的文件句柄。
下面我们再结合修改快捷方式图标来说明如何使用注册表修改显示信息。
1.打开注册表编辑器,在 HKEY_CLASSES_ROOT 关键字下滚屏找到与快捷方式有关的子关键字“lnkfile”并选中它。如图7所示。
2.键名“IsShortcut ” 表示在桌面的快捷方式图标的左下角标注一个向上的小箭头,即 ,如果你不喜欢这个小箭头,可以采用下面的方法删除它:选中“IsShortcut”,然后打开“编辑”菜单,单击“删除”命令,将该项删除。关闭注册表并重启Win95,你将发现快捷方式图标上已经没有小箭头了 。
3.键名“NeverShowExt”表示在快捷方式图标下不显示文件扩展名。如果你希望显示扩展名,可以采用下面的方法把该键名改为“AlwayShowExt”:单击“NeverShowExt”,打开“编辑”菜单,单击“重命名”命令,输入新名。关闭注册表并重启Win95。你会发现快捷方式图标上已经加上扩展名了。
HKEY_CURRENT_USER关键字
从图8中可以看到,HKEY_CURRENT_USER下面有7个子关键字。其中除“RemoteAccess”外,其余6个都为系统预定义。
AppEvents 登录已注册的各种应用事件
Control Panel 与控制面板设置有关的内容
InstallLocationsMRU 安装路径的有关信息
keyboard layout 键盘设置信息
Network 网络设置信息
RemoteAccess 此项是安装IE4.0建立的子关键字,包含该应用程序的有关信息
Software 软件的有关信息
1.AppEvents子关键字
AppEvents子关键字包含了各种应用事件的列表。其下面又包含两个子关键字EventLabels(按字母顺序列表)和Schemes(按事件分类列表)。
从图9可以看出,Schemes是按照应用(Apps)和命名(Name)对事件进行分类的。在本系统中,Apps共分为 Default(缺省)、Explorer(资源管理器)、Mplayer(媒体播放器)和Norton Navigator(笔者安装的应用程序);Name一般情况下均采用Windows缺省值。在“控制面板”中打开“声音”对话框,你可以看到这些事件的中文列表,其内容与按照应用(Apps)来对事件分类的列表是一一对应的。
2.Control Panel子关键字
该子关键字所包含的内容与桌面、光标、键盘和鼠标等设置有关。改变它们的键值就将改变对应的工作环境或参数。图10为Control Panel的结构。
在图10中可以看到,Control Panel下面又有8个子关键字。根据系统配置和设置情况的不同,子关键字的数目也会不同。例如有的系统中没有“Mouse”关键字,并不是表示计算机中没有安装鼠标,而是指你从来没有对鼠标作过任何设置,系统完全采用默认值。
虽然Control Panel中的键值与环境和特性有直接关系,但很多参数的改变并不要求用户通过修改注册表来实现,而只需通过“控制面板”即可进行修改。也有一些环境特性的改变只能通过修改注册表来实现,例如,改变菜单的弹出延迟时间。
在Win95中,系统默认的菜单弹出延迟时间为400ms(随机器的性能不同,实际感觉到的延时可能有一定误差)。如要改变其缺省值,可在注册表编辑器的\ HKEY_CURRENT_USER\ Control Panel\desktop中增加一个键值名“MenuShowDelay”,通过改变其键值来改变菜单显示延时(如图10所示),键值的设定范围为0~1000(ms)。
Accessibility
这个子关键字包含了如图11所示的10个子关键字,多数子关键字在“控制面板”中都有对应的项。这些子关键字的键值名中一般都有一个“On”,当键值为0时,表示设置无效;键值为1时,表示设置生效。
Appearance
这个子关键字的键值中列出了可供选择的各种颜色和图案。可以在“控制面板”的“显示/外观”对话框的“方案”下拉菜单中,看到这些颜色和图案的中文名称。
cursors
这个子关键字的键值中列出了光标图案所在的文件路径。可以在“控制面板”的“鼠标/指针”对话框的“方案”下拉菜单中,看到这些颜色和图案的中文名称并进行设置。
desktop
这个子关键字的键值中列出了桌面和窗口中的各种部件,如:窗口边界、标题、图标、菜单、滚动条、消息框的长度、宽度和字体等数据。这些数据可以在“控制面板”的“显示/外观”对话框的“项目”下拉菜单中进行修改。下面再举一个只能通过修改注册表来实现的例子。
系统缺省设置,窗口在最小化和还原(或最大化)之间切换时,有一个平滑的变化过程(动画效果)。要取消这个动画效果,可以在\HKEY_CURRENT_USER\ Control Panel\desktop\windowmetrics中增加一个键值名“MinAnimat”,其键值设置为0即可。
注:为0为取消动画效果,非0则保留动画效果。
Input Method
这个子关键字的键值中登录了“输入方法”转换热键的有关数据。这些数据你可以在“控制面板”中打开“输入法”对话框中的“热键”标签进行修改。
International
这个子关键字的键值中登录了表示“上午”和“下午”的数据。这些数据可以在“控制面板”中打开“区域设置”对话框中的“时间”标签进行修改。
keyboard
这个子关键字的键值中登录了击键时的重复延时和重复速率。这些数据可以在“控制面板”中打开“键盘”对话框中的“速度”标签进行修改。
Mouse
这个子关键字的键值中登录了鼠标的双击速度和指针的移动速度。这些数据可以在“控制面板”中打开“鼠标”对话框中的“按钮”和“移动”标签进行修改。
上面以AppEvents和Control Panel这两个子关键字为例作了比较详细的讨论,限于篇幅,对其他子关键字就不再详细介绍了。读者可以按照前面所列出的子关键字的基本内容自己进行分析。
HKEY_LOCAL_MACHINE关键字
图12中,HKEY_LOCAL_MACHINE下面的子关键字有8个。其中“.mp2”是安装播放软件“XING MPEG”后定义的关键字,其余的是系统预定义关键字。下面我们先对预定义关键字作简单介绍。
Config 包含了有关显示字体、分辨率、显示点距、颜色深度以及打印机型号等信息。
Enum 包含了系统当前配置的所有硬件设备的信息。
hardware 包含了系统使用的浮点处理器、串口等有关信息。
Network 包含了网络的有关信息。
Security 包含了安全设置的信息。
SOFTWARE 包含了系统软件、当前安装的应用软件及用户的有关信息。
System 包含了系统的全部软件和硬件信息。
对于HKEY_LOCAL_MACHINE关键字,有两点应该说明:
1.根据计算机中硬件配置和安装文件的不同,在HKEY_LOCAL_MACHINE中的信息将有很大的差别(在其他的关键字中也会反应出这种差别)。
2.HKEY_LOCAL_MACHINE下面各个子关键字中包含的信息有很多是重复的,这样做的目的,只是为了浏览和编辑的方便。当然在注册表数据库中是不会重复的。
下面以笔者使用的5X86系统的Enum(枚举)子关键字为例,介绍它的结构和包含的信息。
由于该硬件系统配置简单,因此图13中列出Enum下面的子关键字只有8项。如果你的硬件系统采用的是新型的主板并具有更多的配置,在Enum下面将会出现更多的子项,如BIOS、声卡、解压卡等。如果你的硬盘分为多个逻辑盘,也会把这些逻辑盘作为子项列出。下面就图13列出的几个子项作进一步介绍。
1.ESDI子关键字 该关键字包含了硬盘的有关信息,图14为ESDI的结构。
由于本系统配置了两个硬盘,因此有两个子项“ROOT&*PNP0600&000000”和“ROOT&*PNP0600&000010”,分别表示C、D两个硬盘。在右窗格中显示出C盘的若干有关信息。子项关键字中的前缀“ROOT”表示它们是挂接在“根”下面的设备,你可以在ROOT子关键字中找到它们。
如果你在系统中安装了虚拟光驱,也将在本子关键字中出现,而不会在SCSI子关键字中出现。因为虚拟光驱实际上是硬盘的一个部分。
2.FLOP子关键字 登录了软盘驱动器的有关信息。
3.HTREE子关键字 本系统没有使用。
4.Moniter子关键字 包含了系统监视器的有关信息。
5.Network子关键字 包含了本系统安装网络的有关信息。
6.PCI子关键字 包含了PCI总线和PCI设备的有关信息。
7.ROOT子关键字 包含了系统根节点下面挂接的所有系统设备和外部设备的有关信息。例如,本系统中硬盘C为子关键字“ROOT&*PNP0600&000000”,就说明它是挂接在根节点下面的。在ROOT\PNP0600\0000中可以找到硬盘C的有关信息,如图15所示。
8.SCSI子关键字 登录了各种SCSI设备的有 关信息。光驱的有关信息一般也登录在此
备份恢复注册表的方法
在学习如何修改注册表之前,我们显黄握备份和恢复注册表的方法吧
(以下分割符内的内容,摘自《大众软件》 作者:陈国良 )
直接进行备份及恢复 这是一种很原始的方法
即直接将所需之System.dat及User.dat二个文件拷贝存放在硬盘某个指定目录下或直接拷到软盘上作为备份,恢复时再将该备份替换覆盖回原处即可,当然在备份及恢复时都需对这两个文件的只读及隐藏属性进行相应的修改操作。需注意的是:一般情况下由于Windows 98的注册表(包括System.dat和User.dat二个文件)往往有近2M甚至更大,用一般1.44M的3寸软盘来存储备份是放不下的,所以必须利用压缩软件将其压缩后才能放入1.44M软盘中。当需要恢复时,还需要用解压缩软件将其解开后再放入Windows目录下替换覆盖原注册表数据。 用这种方法的好处是如因注册表问题而导致系统瘫痪,开机后无法进行Windows系统时,可用应急启动盘进入Windows 98自带之DOS7.1界面后,用常规的DOS操作来将存在硬盘或通过解压缩软件将软盘中的备份覆盖回原处,恢复原备份时注册表的正常数据。
利用注册表编辑器自带的导出及引入功能
运行Regedit.exe打开Windows 98注册表后,利用“注册表”的“导出”及“引入”功能也可以用来备份或恢复注册表信息。 具体方法为:打开左上角“注册表”下拉菜单,点击“导出注册表文件”项,在出现的“导出注表文件”对话框中,键入欲备份注册表的文件名及其保存位置,再按“保存”按钮即可。需恢复注册表时,用同样的方法打开注册表编辑器,打开“注册表”下拉菜单后点击“引入注册表文件”项,在出现的对话框中选中所需恢复的备份文件,再按“打开”按钮即可将该注表备份恢复回Windows系统了。
该方法主要适合于Windows系统还未瘫痪或能用启动时按F8键的方法,选择安全模式启动Windows 98系统时恢复注表之用,如因注册表问题而连Windows系统都进入不了时,则该法就无法应用了。此外因备份无法压缩而其大小又超过1.44M软盘容量,所以应用该法也只能将备份保存在硬盘里了。
用Windows 98中新增的注表自动备份功能
在Windows 98中,取消了Windows 95中每次开机时自动以System.da0和User.da0为名的二个文件来备份注册表数据的功能,而新增加了一个以.Cab(Cabinet)作后缀的压缩文件作为注册表备份的功能,具体使用如下:
备份:该备份过程是由Windows 98系统自动完成的。在用户当天第一次(注意当天二字)开机时,Windows 98将会自动将系统中原有的注表信息,包括System.dat和User.dat,甚至还包括了System.ini和Win.ini这四个文件都压缩成Cab形式的文件,以rb00*.cab之名存放在Windows\Sysbckup目录下(其中*为0—4的数字)。系统自动保存最近5开机天(注意不是5天)的注册表数据,超过5开机天时则自动挤掉最早曰期的备份文件。
恢复:可以用Windows自带的Extract.exe(在Windows\command目录下)解开该压缩文件恢复替换回原注册表文件即可,也可用其他第三方解压缩程序如Winzip7.0等解开所需之rb00*.cab备份压缩文件覆盖回去。 该方法增加了注册表恢复的灵活性,可以对最近5开机天的注册表备份根据需要选择进行恢复。
Windows 98中新增的msconfig 在Windows 98中新增加了一个名为msconfig.exe的系统配置实用程序(该程序在Windows\system目录下),通过该程序可以很方便地进行Windows 98系统一些常用配置的编辑、备份、恢复及设置。该配置程序能很直观地帮助用户使用、维护及改变有关Windows 98启动时的一些装载配置设定,对一些初级用户来说应该比前面所叙之注册表的使用要更简单、直观和容易一些。
打开该系统配置实用程序后,我们可以看到有常规,config.sys、autoexec.bat、system.ini、win.ini以及启动这六个选项,分别简述如下:
第一个为常规选项。可以用来选择正常启动(缺少选择),也可以选择诊断启动——Windows启动时以交互式方法装载驱动程序及软件,还可以用选择性启动来由用户自行决定Windows 98启动时对一些驱动程序及软件项装载与否。
后二种选择可以用来帮助用户在系统启动时完成一些特殊要求,也可以帮助用户用来诊断Windows 98启动时的不正常故障。在这个选项里还可以进行这些配置文件的备份及恢复工作,简单到只需按几下有关的按钮即可。
从第二到第五个选项,提供了对config.sys、autoexec.bat、system.ini、win.ini四个基本配置文件的编辑功能,基本上相当于原来在Windows 3.X和Windows 95中用文本编辑器来对这四个文件进行的编辑工作,不过在这儿进行这几个文件的编辑要比用文本编辑器来得更方便安全一些。 最右边的第六个选项,可以帮助用户很简单地用勾选或清除启动项选择框的方法来自行决定某一启动项的启用与否。
注册表的保护
(以下分割符内的内容,摘自《用Rguard注册表哨兵堵住Windows9x得后门》 作者:路远 )
用Rguard注册表哨兵堵住Windows9x得后门
现在,网上治安越来越不好,一不小心就会踏中地雷。一些开后门的软件曰益增多,这些开后门软件利用了Windows9x的漏洞,在你的系统中为别人留一扇后门,如果你没有上网,不会感到这有什么;如果你已经上网,就会被别有用心的人利用,你的计算机就成了他人的靶子,随意受人摆布,不仅物质上受损失,精神上也受打击,因此,我们应该对这类开后门的软件有所防范,提高警惕。
这类开后门的程序统称为特洛伊木马(Trojan horses),虽然功能一样,但是名称可能多种多样,如Back orifice等。为了达到控制你的计算机的目的,它们都要在Windows9x的注册表中或者启动文件中作一番手脚,以便在Windows启动时不知不觉地先运行它。因此,就要经常地监测Windows的各种启动文件,看看是不是有我们不熟悉的可执行文件,如果感到可疑的话,就要毫不留情的删除掉,特别是你不熟悉的人通过电子函件Email寄给你的一些软件,运行后又看不出有什么功能的软件更要小心。
特洛伊木马程序运行后,根据程序的不同,修改的启动文件也不同,它们修改的启动文件有:autoexec.bat、config.sys、wininit.ini、dosstart.bat、system.dat、user.dat、winstart.bat和VXD驱动文件等。如果我们能够经常监测这些启动文件的话就能够发现可疑程序,但是经常对这些文件监测是相当麻烦的,特别是注册表文件,如果不是高手的话,查找哪些键值和字串发生了改变是不可能的。虽然用Regsnap能够监测到注册表的改变,但是如果用来监测这类特洛伊木马程序还是显得力不从心,因此我们就要寻找能够专门针对特洛伊木马程序的特点,即对Windows9x系统文件中进行修改的文件监测的程序。经过本人的搜寻,发现The Registry Run Guard v.2.6(以下简称Rguard)专门监测所有的能够用“Load”、“Runonce”和“Run”等命令和其他方式装入文件的启动文件。这些装入系统的文件,不但包括执行文件,也包括VxD文件,对付这类程序是手到擒来,它们的任何蛛丝马迹在Rguard的监视下都一览无余。
Rguard是乌克兰的ANNA Ltd公司出品的一个软件,http://annaltd.webjump.com/rguard26.html ,下载的rguard26.zip只有220K,解压缩后就可以安装到系统中了。Rguard是一个共享软件,如果没有注册,只能当DEMO使用,功能不减,但是只能使用15天。
Rguard运行后界面如图1所示,在图中我们可以看到,在“Main Option"选项中,可运行时的主界面已选择RGuard自动检查的文件,如注册表文件Registry,配置文件Win.ini,批处理文件有:Autoexec.bat、Config.sys、Dosstart.bat、Winstart.bat,菜单中的“启动”中的文件。另外,我们也可以在“Advanced Options"高级选项中配置“LOG Format”记录文件的格式,如图2。
如果你选择了“Advanced Option "中的“View last record from LOG file after checking" 后,RGyard在Windows启动后将显示一个对话框,列出从上次监测到本次开机后的注册表的修改和变化情况。其它选项为:
(1)Add BEGIN/END marks
如果选择了该项,就要在LOG记录文件中增加下列字串:
-=BEGIN OF CHECKING|=-
-=END OF CHECKING|=-
(2)Add date to BEGIN/END marks
如果选择了该项,就要在LOG记录文件中增加记录开始检查和结束检查的曰期。
(3)Add time to BEGIN/END marks
如果选择了该项,就要在LOG记录文件中增加记录开始检查和结束检查的时间。
选择完成后,就可以退出RGuard,这时你就可以放心地使用软件了。如果你新安装的软件需要重新启动计算机,计算机重新启动后,RGuard首先出现图3,在图3中你就可以发现你安装的软件对系统做了那些修改,点击“View Changes”,出现图4。
Rguard以不同的颜色表示各个键值或者键名,其中:红色的FREE表示这个文件夹没有包含数据,如Run Once等;红色的箭头表示新增加的键值;绿色的箭头表示该键值没有改变,蓝色的箭头表示这个键值已经删除。因此可以根据不同颜色的箭头了解软件对系统所作的改变。如果你认为一个软件是危险的软件,就可以在RGuard列出软件对系统的修改表时,选中该项,用“Delete Item”命令把它删除。如果删除错误的话,也可以利用“Undo"命令恢复已经删除的键值。
Rguard检查的注册表中的项目为:
1. HKEY_USER\default\software\microsoft\windows\currentVersion\RUN项下的各个键值和Runonce,Runservice和RunservicesOnce文件夹中的各个项,如果该项下是空的,就用红色的FREE表示;
2. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run项下的各个键名,这里列出的是Windows启动后就要运行的执行文件,因此,如果看到这些执行文件有可疑的地方,就要(1)把该键名删除,(2)把该键名列出的执行文件删除;
3.HKEY_LOCAL_MACHINE\SYSTM\CURRENTCONTROSET\SERVICE\VXD项下的各个VXD文件是否改变,这里可以防止特洛伊木马程序的VXD改头换面出现。
经过以上的检查,如果没有发现可疑的地方,就可以确定你的系统是安全的,可以放心地使用计算机,因此利用Rguard注册表哨兵,为你的计算机站好岗,堵住系统的后门,确保计算机的安全。

