Windows注册表基础知识

  • 1、注册表简介
    • 注册表主键
    • HKEY_CLASSES_ROOT
    • HKEY_CURRENT_USER
    • HKEY_LOCAL_MACHINE
    • HKEY_USERS
    • HKEY_CURRENT_CONFIG
  • 2、注册表危险项[^1]
    • Windows Load
    • Windows Run
    • 特殊的16位可执行文件类型
    • Windows Shell
    • Pending File Rename Operations
  • 3、优化注册表
    • 清理多余的DLL文件
    • 安装卸载应用程序的垃圾信息
    • 系统安装时产生的无用信息
  • 4、注册表安全设置
    • 隐藏一个服务器
    • 防止其他人非法编辑注册表
    • 屏蔽“控制面板”的访问
    • 不允许其他人对桌面进行任意设置
    • 抵御BackDoor的破坏
    • 隐藏用户登录名
    • 不允许用户拨号访问
    • 屏蔽对软盘的网络访问
  • 5、总结

1、注册表简介

注册表是操作系统、各种硬件和用户安装的各种应用程序得以正常运行的核心数据库。当了应用程序或添加了新的硬件时,安装程序或设备驱动程序就要向注册表添加新的配置信息。
windows启动时,对过注册表查找所有硬件设备的驱动程序,然后将其全部加载到系统,加载后,硬件设备驱动程序将直接运行。如果用户需要启动某个应用程序,注册表将会给windows系统提供与该应用程序相关的环境信息,系统据此完成相应的配置检查,并运行该应用程序。
早期的注册表是以ini为扩展名的文本文件的配置文件,在Windows 95操作系统开始,才逐渐形成了注册表;Windows NT是第一个从系统级别广泛使用注册表的操作系统,并在其后的操作系统中继续沿用至今。
利用regedit.exe程序能够存放注册表文件,通过Win键+R打开命令提示界面,输入regedit进入注册表编辑器。
结构说明:
根腱:这个称为HKEY…,某一项的句柄项:附加的文件夹和一个或多个值。
子项:在某一个项(父项)下面出现的项(子项)。
值项:带有一个名称和一个值的有序值,每个项都可包括任何数量的值项,值项由三个部分组成:名称、数据类型、数据。
A. 名称:不包括反斜线的字符、数字、代表符和空格的任意组合。同一键中不可有相同的名称。
B.数据类型:包括字符串、二进制和双字节等。
C.数据:值项的具体值,它的大小可以占用64KB。

注册表主键

HKEY_CLASSES_ROOT:它是HKEY_CURRENT_USER子树, 包含用于各种OLE技术和文件类关联数据的信息。
HKEY_CURRENT_USER:它是HKEY_USERS子树,它指向“HKEY_USERS\当前用户的安全ID”,包含当前以交互方式登录的用户的用户配置文件。
HKEY_LOCAL_MACHINE:记录关于本地计算机系统的信息,包括硬件和操作系统数据。
HKEY_USERS:记录关于动态加载的用户配置文件和默认配置文件信息。
HKEY_CURRENT_CONFIG:它是HKEY_LOCAL_MACHINE子树,指向HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current,包含在启动时由本地计算机系统使用的硬件配置文件的相关信息加载的设备驱动程序,显示时要使用的分辨率。

HKEY_CLASSES_ROOT

该根腱包括启动应用程序所需的全部信息,包括扩展名、应用程序与文档之间的关系、驱动程序名、DDE和OLE信息,编号和应用程序与文档的图标等。
在这一个根键中记录的是WINDOWS操作系统中所有数据文件的信息内容,主要记录了不同文件的文件扩展名和与之相对应的应用程序。这就是为什么我们双击某一个文档的时候,可以由系统自动调出应用程序的所在了。
这个根键的子键当大家展开时发现是非常多的,它主要分为两种:一是已经注册的各类文件的扩展名;一是各种文件类型的有关信息。
以AVIFILE举例说明一下其下面的子项的含义:

  • CLSID:分类标识,系统可以用这个类标识来识别相同类型的文件。
  • Compressors:它下面有两个子项:auds:用于设置音频数据压缩程序的类标识;vids:用于设置视频数据压缩程序的类标识。
  • defaultlcon:用于设置默认图标。
  • RIFFHandlers:在它的下面有两个类标识:AVI:用于设置AVI文件的类标识;WAVE:用于设置WAVE文件的类标识。
  • protocol:包括了执行程序和编辑程序的路径和文件名:StdExecute(stdfileediting)_server:用于指定编辑程序;StdExecute(stdfileediting)_PackageObjects:用于指定后打开AVI包对象的编辑程序;StdExecute(stdfileediting)_verb:用于设置编辑程序时的工作状态,其中有0、1、2等状态。
  • Shell子项:用于设置视频文件的外壳:open:用于设置打开AVI文件的程序;play:用于设置播放命令的程序。
  • Shellex:包括了视频文件的外壳扩展。

HKEY_CURRENT_USER

此根键中保存的信息(当前用户的子项信息)与HKEY_USERS_DEFAULT下面的一模一样的。任何对 HKEY_CURRENT_USER根键中的信息的修改都会导致对HKEY_USERS_DEFAULT中子项的修改。

HKEY_LOCAL_MACHINE

此根键中存放的是用来控制系统和软件的设置,由于这些设置是针对那些使用Windows系统的用户而设置的,是一个公共配置信息,所以它与具体的用户没多大关系。

  • HARDWARE子项:该子项包括了系统使用的浮点处理器、串口等信息:ACPI:存放高级电源管理接口数据;DEVICEMAP:用于存放设备映射;DEscriptION:存放有关系统信息。
  • RESOURCEMAP:用于存放资源列表。
  • SAM子项:这部分受保护,无法查看。
  • SECURITY子项:该子项只是为将来的高级功能而预留的。
  • SOFTWARE子项:该子项中保留的是所有已安装的32位应用程序的信息,各个程序的控制信息分别安装在相应的子项中,由于不同的计算机安装的应用程序互不相同,因此这个子项下面的子项信息也不完全一样。
  • SYSTEM子项:该子项是启动时所需的信息和修复系统时所需要的信息,currentcontrol保存了当前驱动程序控制集中的所有信息。

HKEY_USERS

此根键中保存的是默认用户(default),当前登录用户和软件(software) 的信息,其中DEFAULT子项是其中最重要的,它的配置是针对未来将会被创建的新用户的。新用户根据默认用户的配置信息来生成自己的配置文件,该配置文件包括环境、屏幕和声音等多种信息,其中常用的3项有:

  • AppEvents子项:它包括了各种应用事件的列表:EventLabels:按字母顺序列表;Schemes:按事件分类列表。
  • Control Panel子项:它包括内容与桌面、光标、键盘和鼠标等设置有关。
  • Keyboard layout子项:用于键盘的布局(如语言的加载顺序等)。
  • Preload:语言的加载顺序。
  • Substitutes:设置可替换的键盘语言布局。
  • Toggle:用于选择键盘语言。

HKEY_CURRENT_CONFIG

此根键存放的是当前配置的文件信息,其中的信息是从HKEY_LOCAL_MACHINE中映射出来的。

2、注册表危险项1

注册表作为Windows系统的中心资料库,强大的功能在带来方便的同时也可能被不良分子用来破坏

Windows Load

这个注册表项是为了保持与旧的Win.ini配置文件兼容而设置的,可支持多个自动加载的值。“Load”字符串值可以是各种可执行文件,比如“C:\Windows\notepad.exe等。恶意程序可以利用这个键值实现自动加载,最危险的是通过这条路可以逃过大多的安全程序的检查。

Windows Run

"Run"字符串值与"Load"字符串值类似,也可支持各种可执行文件,比如:“C:\Windows\notepad.exe”等。很多恶意程序利用这个键值来实现自动加载。

特殊的16位可执行文件类型

"Program"字符串键值的默认内容为“com exe bat pif cmd”,这是常见的16位可执行的文件类型(其中pif不能算是完全可执行的文件)。如果在这里添加一个特使的文件类型(比如“tst”),再将某程序文件改为这个特殊的文件类型(比如把notepad.exe改名为notepad.tst),在Windows里记事本就不能双击运行了,但如果在命令行状态下执行“notepad.tst”却可以打开记事本,恶意程序如果利用这个特性就可逃避多种杀毒软件的扫描。

Windows Shell

这个是最容易被恶意利用的后门!如果木马或者病毒对该自动加载程序的键值进行了修改,除非有经验的高级用户,一般人很不容易发现。
“Shell”字符串在Windows安装时被设置为“Explorer.exe”。Explorer.exe是Windows的默认外壳(Shell)程序,即使我们属性Windows桌面。Explorer.exe位于Windows目录,由于系统已经在环变量中将“C:\Windows”,“C:\Windows\System”等系统目录纳入到了其默认的搜索路径中,因此上述键值中只需直接给出“Explorer.exe"程序文件名即可,虽然方便却有潜在的危险。

Pending File Rename Operations

Pending File Rename Operations的中文含义是”未决的文件改名操作“,它不是任何时候都存在的,它一般由软件的安装程序自动生成的,或者他人植入。木马或病毒可以在感染系统时临时使用一个罕见的文件名或者扩展名,逃避一些杀毒软件对敏感文件类型的扫描,然后通过”Pending File Rename Operations“键值实现自身的文件改名,再配合前面说的自动加载项目实现自动加载,就可以露出恶意程序本来的狰狞面目。

3、优化注册表

Windows启动会读入注册表信息,注册表信息越多,电脑读入速度就越慢,启动时间就越长。所以注册表冗长会导致电脑运行缓慢。所以有必要对注册表进行优化,提高电脑运行速度。

清理多余的DLL文件

有些程序结束后,不会主动归还内存中占用的资源,通过注册表的设置可以清楚这些内存中无用的DLL文件。方法:选择“HKEY_CURRENT_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellDLLs”,在这个项下存放的是共享DLL信息,看括号里面的数据,它表示共享文件的数目,如果为0就删除掉。

安装卸载应用程序的垃圾信息

一些非法卸载应用程序导致垃圾信息,首先要知道什么程序被非法卸载了,
在注册表位置: HKEY_CURRENT_USER\Software HKEY_ LOCAL _MACHINE\Software,看到没在使用的注册表信息都可以删除

系统安装时产生的无用信息

1.删除多 余时区(可以只留更好北京时区):位置: HKEY _LOCAL _MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones
如果你只留下北京时区,那么除了China Standard Time,其余的都可以删了。

2.清除国家列表(例如只留中华人民共和国):位置: HKEY _LOCAL _MACHINE\Software\Microsoft\Windows \CurrentVersion\Telephony\Country List,保留86号文件夹,删除其它部分。

3.清除多余的语言代码(例如只保留英语一-0409和中文一-0804):位置:HKEY_ LOCAL_MACHINE\SYSTEM\CurrnetControlSet\Control\NIs\Locale其余部分可以删除

4.删除多余的键盘布局:位置: HKEY_ LOCAL_MACHINE\SYSTEM\CurrnetControlSetl\Control\Keyboard Layouts
可以把每个键值都打开看看,不需要的输入法删除即可。

5.删除失效的文件关联:位置: HKEY_ CLASSES_ROOT
主键可分为两部分:第一部分用来定义文件类型;第二部分与第一部分一一对应, 用于记录打开文件的应用程序。通常在打开第二部分的某子项后,若该键下的COMMAND下没有内容,就可以删掉了。

4、注册表安全设置

隐藏一个服务器

为了保证局域网中服务器上的资源不受其他人的非法访问和攻击,从安全的角度考虑,有时需要把局域网中指定的服务器计算机名称隐藏起来,以便让其他局域网用户无法访问到,下面请看该设置的具体步骤
(1)打开注册表编辑器,并在编辑器对话框中用鼠标依次单击如下分支:HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet \ServicesLanmanServer\Parameters键值。
(2)用鼠标单击该键值下面的Hidden数值名称,如果未发现此名称,那么添加一个,其数据类型为REG_DWORD。
(3)接着用鼠标双击此项,在弹出的“DWORD编辑器”对话框中输入1即可。
(4)最后单击“确定”按钮,并退出注册表编辑窗口,重新启动计算机就可以在局域网中隐藏一个服务器了。

防止其他人非法编辑注册表

注册表是整个系统的灵魂所在,任何对注册表的错误修改都有可能让系统瘫痪。因此不要轻易动手修改注册表。当然在公共场所,为了防止那些电脑“菜鸟”们,随意更改注册表设置,最好还是取消其他用户对注册表进行修改的权利。可以按照如下步骤来实现这样的目的:
(1)首先在注册表编辑界面中,找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
Policies键值。
(2)然后在Policies键值的下面新建一个System主键,如果该主键已经存在的话,可以直接进行下一步。
(3)接着在对应System主键右边窗口的空白处再新建一个DWORD串值,并命名为DisableRegistryTools。
(4)把DisableRegistryTools的值设置为1,设置好以后,重新启动计算机就可以达到防止其他人非法编辑注册表的目的了。

屏蔽“控制面板”的访问

由于通过控制面板可以对计算机系统中的绝大部分软硬件进行设置和控制,因此为了防止其他人随意通过控制面板对Windows系统进行非法修改,我们就很有必要屏蔽其他用户对“控制面板”的访问了,要实现该功能,我们可以对注册表进行如下修改:
(1)首先在开始菜单中的运行栏中输入regedit命令,打开注册表编辑器操作界面。
(2)接着在该界面中,依次用鼠标访问HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
PoliciesSystem键值。
(3)随后在对应System键值的右边窗口中,用鼠标右键单击该窗口的空白处,并从弹出的快捷菜单中选择“新建”/“DWORD”命令,来新建一个DWORD值。
(4)把DWORD值的名称命名为NoDispCPL,同时设置NoDispCPL的值为1。

不允许其他人对桌面进行任意设置

如果计算机的桌面设置都一样,那么点击到什么图标或者执行什么操作,人们在使用计算机时,都能迅速找到目标;相反,一旦桌面中的设置被任意修改后,每一台计算机中的设置就会不一样,就很难保证教学操作的同步性。为此,都对锁定桌面进行了设置,下面是具体的设置步骤:
(1)在Windows的运行对话框中输入regedit命令,来打开注册表编辑器窗口。
(2)在编辑窗口中,用鼠标依次访问HKEY_USERS\Software\Microsoft\Windows\CurentVersion
PolioiesExplores键值。
(3)在对应Explores键值右边的窗口中,用鼠标双击“No Save Setting”子键,并将其键值从0改为1!
(4)重新启动计算机,上述设置就可以生效了。

抵御BackDoor的破坏

计算机一连接互联网,那么计算机就会存在着被黑客攻击的危险,而一旦被攻击中的,计算机就会面临着瘫痪或者被监视的安全威胁,其中有一个名叫BackDoor的后门程序,专门拣系统的漏洞进行攻击。为防止这种程序对系统造成破坏,我们有必要通过相应的设置来预防BackDoor对系统的破坏。设置时:
(1)首先在注册表编辑器操作窗口中,用鼠标依次单击键值HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run。
(2)在对应Run键值的右边窗口中,如果发现了“Notepad”键值,您只要将它删除就能达到预防BackDoor的目的了。

隐藏用户登录名

Win9x以上的操作系统可以对以前用户登录的信息具有记忆功能,下次重新启动计算机时,我们会在用户名栏中发现上次用户的登录名,这个信息可能会被一些非法分子利用,而给用户造成威胁,为此我们有必要隐藏上机用户登录的名字。
(1)在设置时,请用鼠标依次访问键值HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
Winlogon。
(2)在对应Winlogon键值右边的窗口中,用鼠标右键单击窗口的空白处,从弹出的快捷菜单中选择“新建”/“字符串”命令。
(3)给新建字符串命名为"DontDisplayLastUserName"并把该字符串值设置为"1"。
(4)设置完后,重新启动计算机就可以隐藏上机用户登录的名字了。

不允许用户拨号访问

如果用户的计算机上面有重要的信息,有可能不允许其他人随便访问。那么如何禁止其他人拨入访问你的计算机,减少安全隐患呢,具体步骤为:
(1)打开注册表编辑器,并在编辑器中依次展开以下键值: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\PoliciesNetwork。
(2)在编辑器右边的列表中用鼠标选择“NoDialIn”键值,如果没有该键值,必须新建一个DWORD值,名称设置为“NoDialIn”。
(3)接着用鼠标双击“NoDialIn”键值,编辑器就会弹出一个名为“字符串编辑器”的对话框,在该对话框的文本栏中输入数值“1”,其中0代表禁止拨入访问功能,1代表允许拨入访问功能。
(4)退出后重新登录网络,上述设置就会起作用。

屏蔽对软盘的网络访问

计算机中的病毒有很多都是通过访问不干净的软盘而被感染得来的,如果允许用户通过网络来访问软盘的话,那么整个网络都有可能被感染病毒,最终的结果将会使网络中的所有计算机都中毒瘫痪。为了防止病毒入侵整个网络,我们必须严格管理计算机的输入设备,以断绝病毒的源头,为此就要禁止通过网络访问软盘。设置时,可以按照如下操作步骤来进行:
(1)在系统的运行对话框中输入regedit命令,打开注册表编辑器。
(2)在注册表编辑器操作窗口中,依次打开键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
Windows NT\CurrentVersion\Winlogon。
(3)在对应Winlogon右边的窗口中,检查一下其中有没有包含键值AllocateFloppies,如果没有,用鼠标右键单击窗口的空白处,从弹出的快捷菜单中选择“新建”/“DWORD值”。
(4)把新建的DWORD值取名为AllocateFloppies,同时把它的值修改为0或1,其中0代表可被域内所有管理员访问,1代表仅可被当地登陆者访问。

5、总结

注册表是保存所有系统设置数据的储存器。注册表保存了Windows运行所需的各种参数和设置,以及应用程序相关的所有信息。从Windows启动开始,到用户登录、应用程序运行等所有操作都要以注册表中记录的信息为基础。注册表在Windows系统中起着最为核心的作用。
注册表编辑器与Windows的资源管理器相似,呈树状目录结构。在运行里键入regedit就可以进入了。资源管理器中文件夹的概念在注册表编辑器中叫做“键”。资源管理器最顶层的文件叫做“根目录”,其下一层文件夹叫做“子目录”。相似的注册表编辑器的最顶层叫做“根键”,其下一层叫做“子键”。
实际上五大根腱并不是5个,其实就是HKEY_LOCAL_MACHINE、HKEY_USERS这两个才是真正的注册表键,其它都是从某个分支映射出来的,相当于快捷方式或是别名。


  1. https://blog.csdn.net/qq_39871572/article/details/106794787 ↩︎

Windows注册表基础知识相关推荐

  1. 记录Windows 的一些基础知识(包括基础命令,文件系统,注册表项)

    Windows基础命令 ## windows输入命令```powershell win+R 打开cmd 右键管理员运行 目录和文件操作 目录分为相对路径和绝对路径 相对路径(以当前为起点) " ...

  2. Windows注册表操作基础代码

    Windows注册表操作基础代码   Windows下对注册表进行操作使用的一段基础代码Reg.h: #pragma once #include<assert.h> #include< ...

  3. Windows与网络基础:注册表基础和注册表维护与优化

    学习目标 1.理解注册表概念 2.掌握注册表维护及优化方法 目录 一.注册表基础 1.概述 2.早期的注册表 3.Windows 95后的注册表 4.注册表结构 4.1.注册表以树状结构进行呈现 4. ...

  4. 10#Windows注册表的那些事儿

    引言 用了多年的Windows系统,其实并没有对Windows系统进行过深入的了解,也正是由于Windows系统不用深入了解就可以简单上手所以才有这么多人去使用.笔者是做软件开发的,使用的基本都是Wi ...

  5. 视频教程-C#对Windows注册表的操作-C#

    C#对Windows注册表的操作 二十多年的企业管理软件开发经历,熟知管理软件的整个开发流程,熟练掌握VFP语言,掌握VB语言,了解JAVA.asp.net.CSS.HTML/HTML5等语言,使用C ...

  6. Windows注册表的那些事儿

    引言 用了多年的Windows系统,其实并没有对Windows系统进行过深入的了解,也正是由于Windows系统不用深入了解就可以简单上手所以才有这么多人去使用.笔者是做软件开发的,使用的基本都是Wi ...

  7. Windows注册表及常见子项

    Windows注册表五大根键以及常用注册表项 注册表概述:注册表是Windows操作系统.硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库",也可以说是一个非常巨大的树 ...

  8. 注册表关闭命令提示符_如何从命令提示符下编辑Windows注册表

    注册表关闭命令提示符 Windows and a lot of third-party apps store settings in the registry. If you're wanting t ...

  9. Windows注册表脚本文件(简介、添加、修改、删除)

    简介 我们平时大多采用Regedit注册表编辑器来实现对注册表的修改操作,但是这种手工操作费时费力,当你要对多台PC统一修改注册表时,就要怨念了.并且在某些情况下,如果注册表编辑器被禁用了,那么这种方 ...

  10. windows 注册表脚本文件 添加 修改 删除 简介

    目录 1. 简介 2. 创建REG文件 3. REG语法 3.1 基本语法 3.2 删除操作语法 3.3 重命名操作语法 4. 编辑REG文件 5. 补充知识 1. 简介 我们平时大多采用Regedi ...

最新文章

  1. php的long类型转换,[PHP]将RGB或HEX转换为“Long Int”颜色
  2. windows下使用cpanm进行模块安装
  3. 【bayes】贝叶斯likelihood和model
  4. IOS控件内容 对齐方式
  5. 解决属性名和字段名不一致的问题(Mybatis)
  6. 拆分工作簿为多个文件_能不能将总表快速拆分为多个工作簿?当然!
  7. java 阶乘算法_Java 实现阶乘算法
  8. 东数西算背后的大棋局
  9. 吉林大学线性代数知识点及解题方法
  10. 学生成绩信息管理系统
  11. java .jar怎么打开_jar文件怎么打开,教您如何打开jar文件
  12. 计算机 审计追踪功能,第 讲 审计追踪技术与Windows安全审计功能
  13. usrp n310测试总结---测试结果篇(不仅仅是测试结果,还有方法哦)
  14. Arduion实验九 轻触开关实验
  15. 超神学院之天河战役计算机,《超神学院之雄兵连 第1季 天河战役篇》
  16. vue中使用mapBox绘制圆形范围
  17. 新商用密码产品认证梳理——认证流程篇
  18. 有用的win11小技巧
  19. 易语言软件加VMProtect壳的正确方法
  20. 骑缝章 Java_Java 在PDF中添加骑缝章示例解析

热门文章

  1. [转]在数学的海洋中飘荡
  2. 牛客IOI周赛17-普及组 数列统计(组合数)
  3. java繁体_Java-汉字繁体拼音转换
  4. 五种常用的Web安全认证方式
  5. keil与proteus联调C语言,51keil与proteus联调,实现在线仿真
  6. mermaid 饼图使用指南
  7. 更强大、更灵活、更全面丨一文搞懂DolphinDB窗口计算
  8. 超火的微信小说小程序源码+比较轻量级/UI不错
  9. 如何搭建自己的私有云盘
  10. 人工神经网络心得体会_图神经网络打卡心得体会