实验一、注册表安全实验 实验开发教师:刘乃琦 谌黔燕
【实验目的】 了解注册表在系统安全中的地位和作用 了解几个与系统安全密切相关的重要注册表 键值 掌握使用Windows API访问注册表的编程方法。
【实验开设方式】 个人或分组均可。 【实验设备与环境】 个人计算机 Windows 2000 系统平台 开发语言不限
【实验内容】 通过编程以对话框形式完成对注册表编辑器的禁用与解禁
【实验方法步骤】 (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、实验必备知识 防止注册表攻击的方法有许多,其中一种就是禁止用户运行系统提供的两个注册表工具Regedt32.exe和Regedit.exe。
【相关知识点】 2、 注册表 注册表既是Windows的重要组成部分,它存放了Windows中所有应用程序和系统配置信息。在Windows功能和应用软件被执行前,首先从注册表中取出参数,根据这些参数决定操作运行。 黑客通过对被攻击方注册表的的访问可以获取大量被攻击方系统信息,甚至直接击毁系统。 Windows 2000注册表包括五个键值,分别是:
l HETY_LOCAL_MACHINE l HKEY_CLASSES_ROOT l HKEY_CURRENT_CONFIG l HKEY_USERS l HKEY_CURRENT_USER HETY_LOCAL_MACHINE根键中存放控制系统和软件设置的信息。 HKEY_CLASSES_ROOT根键中记录Windows操作系统中所有数据文件的信息。
HKEY_CURRENT_CONFIG根键中存放当前配置文件的所有信息。 HKEY_USERS根键存放的上默认用户(.DEFAULT)、当前登录用户与软件的信息。 HKEY_CURRENT_USER根键中存放的是与HKEY_USERS\..DEFAULT分支中相同的信息。
3、注册表的访问方法 (1) 通过在命令行状态下运行regedit.exe可以手工修改Windows注册表的键值。 (2) 通过Windows API编程访问注册表。 4、注册表中常用的Windows API 函数 Windows API 函数提供了访问Windows 底层、控制Windows功能的操作。Windows中提供了数十个有关注册表的API函数,其中最常用的就是创建、打开、查询和删除。使用 Windows
注册表函数,需要包括 winreg.h头文件。
【评分要求】100分 (1) 程序运行正常(不死机)40分 (2) 有对话框显示10分 (3) 完成修改功能20分 【评分要求】100分 (1) 程序运行正常(不死机)40分 (2) 有对话框显示10分 (3) 完成修改功能20分 (4) 完成还原功能10分 (5) 有设计文档10分 (6) 有新增功能10分