实验一、注册表安全机制实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一、注册表安全机制实验
【实验目的】
(1)了解注册表在系统安全中的地位和作用
(2)了解几个与系统安全密切相关的重要注册表键值
(3)掌握使用Windows API访问注册表的编程方法。
【实验内容】
通过编程以对话框形式完成对注册表编辑器的禁用与解禁。
【实验方法步骤】
(1)用RegOpenKeyEx()函数打开注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Windows\Currest
Version\Policies\System。如果该注册表项不存在,则用RegCreateKeyEx()函数创建该项。
(2)如果该项为新创建的,则新建立一个REG_SZ值项DisableChangePassword 和一个REG_DWORD值项dword。如果该值项已经存在,则用
RegQueryValueEx()读取值项DisableRegistryTools的dword的值。(3)用wsprintf()和MessageBox()函数把项值显示在屏幕上。
(4)将值项dword的值置为1。
(5)用RegFlushKey()函数将对注册表项的修改写入注册表。
(6)用RegCloseKey()函数关闭打开的注册表项。
(7)编译执行立即生效。
(8)发regedit命令验证结果。
【实验报告】
(1)提交原程序、可执行程序代码。
(2)编写并提交程序数据字典。
【实验注意事项】
由于注册表值项中值的改变会直接影响系统性能,编程时需慎重,除本次实验要求的内容外,不得随意改变或删除其它注册表项。
【相关知识点】
1、实验必备知识
注册表既是Windows的重要组成部分,也是黑客攻击的主要对象之一。黑客通过对被攻击方注册表的的访问获取大量系统信息,甚至直接击毁系统。防止注册表攻击的方法有许多,其中一种就是禁止用户运行系统提供的两个注册表工具Regedt32.exe和Regedit.exe。禁止的方法由修改下列注册表项的值实现:HKEY_CURRENT_USER\Software\Wicrosoft\Windows\CurrentVersion\Policie s\System
值项:DisableRegistryTools
类型:REG_DWORD
值为1表示禁止使用Windows 中的注册表工具Regedt32.exe和Regedit.exe。
值为0或不存在则表示允许用户使用注册表工具。其脚本语言如下:
REGEDIT4
[HKEY_CURRENT_USER\Software\Wicrosoft\Windows\CurrentVersion\Polici es\System]
“DisableRegistryTools”=dword:00000001
执行后立即生效。
2、注册表
注册表是Windows的重要组成部分,它存放了Windows中所有应用程序和系统配置信息。在Windows功能和应用软件被执行前,首先从注册表中取出参数,根据这些参数决定操作运行。
Windows 2000注册表包括五个键值,分别是:
●HETY_LOCAL_MACHINE
●HKEY_CLASSES_ROOT
●HKEY_CURRENT_CONFIG
●HKEY_USERS
●HKEY_CURRENT_USER
HETY_LOCAL_MACHINE根键中存放控制系统和软件设置的信息。
HKEY_CLASSES_ROOT根键中记录Windows操作系统中所有数据文件的信息。
HKEY_CURRENT_CONFIG根键中存放当前配置文件的所有信息。
HKEY_USERS根键存放的上默认用户(.DEFAULT)、当前登录用户与软件的信息。
HKEY_CURRENT_USER根键中存放的是与HKEY_USERS\..DEFAULT分支中相同的信息。
3、注册表中常用的Windows API 函数
Windows API 函数提供了访问Windows 底层、控制Windows功能的操作。Windows中提供了数十个有关注册表的API函数,其中最常用的就是创建、打开、查询和删除。使用Windows注册表函数,需要包括 winreg.h头文件。(函数表见《Windows 注册表详解》P644页)
用RegOpenKeyEx()函数打开注册表项: HKEY_CURRENT_USER\Software\Microsoft\Windows\Currest
Version\Policies\System。如果该注册表项不存在,则用RegCreateKeyEx()函数创建该项。
(2)如果该项为新创建的,则新建立一个REG_SZ值项DisableChangePassword 和一个REG_DWORD值项dword。如果该值项已经存在,则用RegQueryValueEx()读取值项DisableRegistryTools的dword的值。