5.1 知识储备
5.1.1 深入认识注册表
问答1:什么是注册表?
注册表是保存所有系统设置数据的存储器,它保存了Windows系统运行所需的各种参数和设置,以及应用程序相关的所有信息。从Windows系统启动开始,到用户登录、应用程序运行等所有操作都需要以注册表中记录的信息为基础。注册表在Windows系统中起着最为核心的作用。
Windows系统运行中,系统环境会随着应用程序的安装等操作而改变,改变后的环境设置又会保存在注册表中,如图5-1所示。所以,用户可以通过编辑注册表来改变Windows系统环境,但如果注册表出现问题,Windows系统就不能正常工作了。
图5-1 注册表
注册表中保存着系统设置的相关数据,启动Windows系统的时候会从注册表中读入系统设置数据。如果注册表受损,Windows系统就会发生错误,还有可能造成Windows系统崩溃。
每次启动Windows系统的时候,电脑都会检查系统中安装的设备,并把相关的最新信息记录到注册表中。Windows系统内核启动时,从注册表中读入设备驱动程序的信息才能建立Windows系统的运行环境,并选择合适的. inf文件安装驱动程序,安装的驱动程序会改变注册表中各个设备的环境参数、IRQ、DMA等信息。
启动完成后,Windows系统和各种应用程序、服务等都会参照注册表中的信息运行。
安装各种应用程序的时候,都会在注册表中登记程序运行时所需的信息。在Windows系统中卸载程序,就会在卸载过程中删除注册表中记录的相关信息。
问答2:什么是注册表编辑器?
注册表编辑器与Windows系统的资源管理器相似,呈树状目录结构,注册表编辑器中的键类似于资源管理器中文件夹的概念。资源管理器最顶层的文件叫作“根目录”,其下一层文件夹叫作“子目录”。相似的,注册表编辑器的最顶层叫作“根键”,其下一层叫作“子键”。单击键前面的三角形箭头可以打开下一层的子键,如图5-2所示。
图5-2 注册表编辑器
“注册表编辑器”窗口的左侧是树状键,显示了注册表的结构;右侧窗格显示键的具体信息。
● 菜单栏:菜单栏中有“文件”“编辑”等菜单,可实现文件导入/导出、编辑、查看等操作功能。
● 树状键:显示了键的结构。
● 名称:注册表值的名称。与文件名相似,注册表键也有重复的现象,但在同一个注册表键中也不能存在相同名称的注册表值。
● 类型:注册表键采用的数据存储形式。
● 数据:注册表值的内容,注册表值决定了数据的内容。
● 默认:所有注册表键都会有“(默认)”项目,应用程序会根据注册表键的默认项来访问其他数值。
5.1.2 认识注册表的结构及键
问答1:注册表有哪些根键?
Windows 10系统的注册表结构中有5个根键,如图5-3所示。
查看这些根键可以发现,5个根键中大部分注册表内容都在HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER中。
问答2:注册表的值有哪些类型?
注册表中保存的数据有多种数据类型,有字符串值、二进制值、多字符串值等,如表5-1所示。在注册表编辑器中,右侧窗格中“类型”栏显示的就是相应键值的数据类型。无论是多字符串还是扩充字符串,一个键的所有值的总大小都不能超过64KB。
图5-3 注册表的根键
表5-1 注册表键值的数据类型
(续)
问答3:什么是树状结构Hive?
在注册表编辑器中,单击键前的三角形箭头图标,就能从根键到子键,从子键再到下一层的子键依次打开,这种树状结构叫作Hive。
Windows系统中把主要的HKEY_LOCAL_MACHINE键和HKEY_USERS键的Hive内容保存在几个文件夹当中。
Windows会默认把Hive保存在C:\Windows\system32\config文件夹中,其中包含多个default、SAM、SECURITY、software、system、COMPONENTS为名的文件。Hive本身并没有扩展名。
C:\Windows\system32\config文件夹中的同名文件实际上是扩展名为LOG、SAV、ALT等的多个文件。一般来说,LOG文件用于Hive的登记和监视记录,SAV文件用于系统发生冲突时恢复注册表的Hive和保存注册表的备份。
注册表中保存用户资料的HKEY_USERS根键的Hive文件保存在Windows目录中,用户名文件夹中的NTUSER. DAT文件中,以便用户各自进行管理。Windows系统中注册表的保存如表5-2所示。
表5-2 Windows系统中注册表的保存路径