注册表
一、注册表概述
注册表(Registry)实际上是Windows的一个庞大的树状分层结构的数据库系统,用于存储系统和应用程序的设置信息,管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等。
注册表中记录了用户安装在计算机上的软件和每个程序的相互关联的信息,通过对注册表的操作可以控制软件、硬件、用户环境和操作系统界面的数据信息文件。
Windows键 + R 键打开命令提示界面,输入regedit 即可进入注册表编辑界面
根键:这个称为HKEY…………,某一项的句柄项:附加的文件夹和一个或多个值
子项:在某一个项(父项)下面出现的项(子项)
值项:带有一个名称和一个值的有序值,每个项都可包括任何数量的值项,值项由三个部分组成:名称、数据类型和数据。
1、名称:不包括反斜线的字符、数字、代表符和空格的任意组合。同一键中不可有相同的名称
2、数据类型:包括字符串、二进制和双字节等
3、数据:值项的具体值,它的大小可以占用64KB
二、注册表五大主键
注册表包括以下5个根键:
主键 | 说明 |
---|---|
HKEY_CLASSES_ROOT | 该根键包括启动应用程序所需的全部信息,包括扩展名,应用程序与文档之间的关系,驱动程序名,DDE和OLE信息,类ID编号和应用程序与文档的图标等。 |
HKEY_CURRENT_USER | 该根键包括当前登录用户的配置信息,包括环境变量,个人程序以及桌面设置等。 |
HKEY_LOCAL_MACHINE | 该根键包括本地计算机的系统信息,包括硬件和操作系统信息,安全数据和计算机专用的各类软件设置信息。 |
HKEY_USERS | 该根键包括计算机的所有用户使用的配置数据,这些数据只有在用户登录系统时才能访问。这些信息告诉系统当前用户使用的图标,激活的程序组,开始菜单的内容以及颜色,字体。 |
HKEY_CURRENT_CONFIG | 该根键包括当前硬件的配置信息,其中的信息是从HKEY_LOCAL_MACHINE中映射出来的。 |
注册表大部分内容在HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE中,其它3个根键可以看作是这两个根键的子键。
注册表常用的5种数据类型
数据类型 | 说明 |
---|---|
二进制值(reg_binary) | 多数硬件信息以二进制数据存储,再以十六进制格式显示在注册表编辑器中。 |
字符串值(reg_sz) | 包括字符串的注册表键,使用字符串数据类型。 |
双字节值(reg_dword) | 32位信息常显示成4个字节。在出错控制功能上用处极大,其数据一般以十六进制格式显示在注册表编辑器中。 |
多字符串值(reg_multi_sz) | 允许将一系列项目作为单独的一个值使用。对于多种网络协议、多个项目、设备列表以及其他类似的列表项目,可以使用多字符串值。 |
可扩充字符串值(reg_expand_sz) | 代表一个可扩充的字符串。 |
三、注册表破坏
一、注册表破坏后的常见现象
1、无法启动系统
2、无法运行或正常运行合法的应用程序
3、找不到启动系统或运行应用程序所需的文件
4、没有访问应用程序的权限
5、不能正确安装或装入驱动程序
6、不能进行网络连接
7、注册表条目有错误
二、注册表被破坏的原因
1、应用程序错误:应用程序或多或少的时候都有错误,都有可能导致不同的后果;另外在系统中安装过多的软件后,也有可能出现彼此之间的冲突。
2、驱动程序不兼容:多出现在系统自动安装的驱动程序上,如果你本身有驱动程序盘的话,还是用专业的更好。
3、硬件问题:问题多出现在硬件质量上,比如硬盘或内存质量不过关造成读写错误,或超频或CMOS或病毒等
4、误操作:误操作可能会导致注册表出现错误,有的时候甚至会很严重的。
四、注册表备份与恢复
备份
一、手工备份注册表
大家把以下几个文件直接复制到另一个文件夹就可以了
1、在windows\system32\config下将 SAM,SYSTEM,SOFYWARE,DEFAULT 复制到备份设备中用以保存系统配置。
2、在Documetents and settings\username文件夹中保存用户配置文件:NETUSER.DAT,对应的LOG文件也应该一块保存。
二、注册表导出法导出注册表
选中注册表需要导出的键,右键导出即可。
三、通过系统备份功能进行备份
1、选择开始—> 程序—> 附件—> 系统工具—> 备份
2、选择高级模式点下一步
3、选择system state(系统状态),在底下文件名中位置中回答路径及文件名
4、点击开始备份
恢复
一、重新启动系统恢复注册表
重启即可修正各种在注册表中出现的错误,但这要以硬盘上的注册表信息正确为前提。
二、注册表导入法恢复
运行regedit.exe文件,文件中的导入,选择要导入的注册表文件。
三、利用高级启动选项恢复注册表
重启计算机,启动时按F8键进入高级选项菜单, 选择最后一次正确的配置,回车。
四、通过局域网来恢复注册表
一般是指连入局域网的某一计算机(我们假设叫aaaaa)的注册表被管理员锁了,但有另一台计算机(我们假设叫B)的注册表可以用,就可以用B来解除A的锁定。
进入B的注册表,选择文件中的连接网络注册表,在查找位置中输入aaaaa,这时注册表中出现了songxiang计算机的注册表,修改键值:aaaaa\HEKY_USERS\S-1-5-21-823518204-688789844-842925246-500\Software\Microsoft\Windows\CurrentVersion\Policies\System下的disableregistrytools值改为0就可以了。S-1-5-21-823518204-688789844-842925246-500 指超级管理员。
五、注册表的一些危险操作
映像劫持
映像劫持(Image File Execution Options,IFEO 或者说“image Hijack”),是为了一些在默认系统环境中运行时可能会引发错误的程序执行体提供特殊的环境设定。一般默认只有管理员和local system有权读写修改。
简单来说就是当目标程序被劫持时,我们启动目标程序却启动的是劫持后的程序而非原来的程序。
操作:在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Option 下添加一个项 sethc.exe ,然后在 sethc.exe 这个项中添加 debugger 键,键值为我们恶意程序的路径。
eg: c:\windows\system32\cmd.exe ,连续按5次shift 键的粘滞键就被替换成了 CMD。
注册表自启动项
木马程序一般都要依靠自启动进行,自启动有这两个键:Run 和 RunOnce。
Run:该项下的键值即为开机启动项,每一次随着开机而启动。
RunOnce:Run 和 RunOnce 差不多,唯一区别就是RunOnce 的键值只会作用一次,执行完毕就会自动删除。
常见的注册表自启动项键位置:<