热点推荐:
您现在的位置: 电脑学习网 >> 软件专区 >> 正文

注册表加锁的方法

2013-09-12 15:53:22  来源: 软件专区 

  注册表保存了Windows中极重要的配置信息,而任何人都可以通过运行Regedit命令或双击某个Reg文件来改写它,这样做其实是很危险的。本期介绍的编程方法,就是为防止注册表被改写而设计的。www.sq120.com推荐文章

  本程序有三个功能:①显示当前注册表状态(处于可改写还是处于被保护状态);②锁定注册表使它不被人改写;③解锁注册表使它可以随时被改写。下面我们用VB6.0来实现它。
一、设计窗体
  首先打开VB程序,新建一个FORM1,将其Caption改为“注册表保护程序演示”,BorderStyle设为1-Fixed Single。放上一个Label1(其Caption改为“当前注册表状态:”)和一个Label2,另放上COMMAND1,其Caption改为“禁止使用注册表”,再放上COMMAND2,其Caption改为“允许使用注册表”,COMMAND3的Caption改为“退出程序”。
 
二、编程思路
  程序运行时首先检查注册表,看当前注册表的状态是处于被保护状态还是锁定状态,并返回信息到Label2。如已保护则COMMAND1不可用,如无保护则COMMAND2不可用,且建一个全局的BAS文件,其中包含所有访问注册表时要用的常数及函数程序,方便主FORM1可以随时调用。WWw.ITCOMpUter.coM.cN下面给出主程序的和全局BAS文件的核心代码。
三、核心代码
  Private Sub Form_Load() //打开窗口
  Dim ret As Integer
  Move (Screen.Width - W-idth) \ 2, (Screen.Height - Height) \ 2 //居中显示
  ret = GetDWORDValue("Software\Microsoft\Windows\Cur rentVersion\Policies\System", "DisableRegistryTools") //调用全局函数,在后面有全部的代码
  //判断当前注册表处于何种状态
  If ret = 1 Then //返回值为1说明已经禁用注册表
  Label2.Caption = "你的注册表处于安全被保护的状态"
  Command1.Enabled = False
  Else //返回除1以外的任何值都说明注册表没有受到保护
  Label2.Caption = "你的注册表处于随时被改写的状态"
  Command2.Enabled = False
  End If
  End Sub
  ----------------------------------
  Private Sub Command1_Click() //禁用注册表
  //写DWORD值的值项"DWORD Value",值为"1"
  SetDWORDValue "Software\Microsoft\Windows\Cur rentVersion\Policies\System", "DisableRegistryTools", "00000001"
  //把DisableRegistryTools这个键值设置为1,如果没有这个键就自动新建一个。
  MsgBox "写入成功"
  Command1.Enabled = False
  Command2.Enabled = True
  Label2.Caption = "你的注册表处于安全被保护的状态"
  End Sub
  -------------------------
  Private Sub Command2_Click()//可用注册表
  //写DWORD值的值项"DWORD Value",值为"0"
  SetDWORDValue "Software\Microsoft\Windows\Cur rentVersion\Policies\System", "DisableRegistryTools", "00000000"
  MsgBox "写入成功"
  Command2.Enabled = False
  Command1.Enabled = True
  Label2.Caption = "你的注册表处于随时被改写的状态"
  End Sub
  ------------------------
  Private Sub Command3_Click()//退出程序
  Unload Me
  End Sub
  FORM1中的程序代码之所以看起来非常简洁,是因为它们调用了一个全局的BAS文件中的函数操作注册表,全局的BAS文件的代码由于太多,可以到网站下载,下载地址:
  http://www.cpcw.com/xz/bas.rar
四、说明
  在BAS文件的通用中有Public Const HKEY_CURRENT_USER = &H80000001,这是表明注册表中HKEY_CURRENT_USER这个主键的调用值,如果你使用其他主键写程序时,相应的常数值分别为:
  Public Const HKEY_CLASSES_ROOT = &H80000000
  Public Const HKEY_CURRENT_USER = &H80000001
  Public Const HKEY_LOCAL_MACHINE = &H80000002
  Public Const HKEY_USERS = &H80000003
  Public Const HKEY_PERFORMANCE_DATA = &H80000004
  Public Const HKEY_CURRENT_CONFIG = &H80000005
  Public Const HKEY_DYN_DATA = &H80000006
  注:以上程序在Windows XP SP2及VB6.0下编写及调试成功。

 

如何给注册表加锁

  木马、病毒在侵入系统的同时,为了以后能更好的存活在系统内,恶意程序会在注册表里,写入一些相关的恶意信息,可见注册表的作用是非常大的。www.sq120.com推荐文章

  因此毫不夸张地说保护系统安全,要从注册表开始,不过注册表的键值实在多如牛毛,而且每个键值都有一定的作用,很难让初学者掌握,所以不妨请Ghost Security Suite(以下简称GSS)(下载地址:http://download.cpcw.com)为你的注册表保驾护航。
为注册表撑起保护伞
  GSS防火墙最大的特点就是为注册表提供很多防护设置,用户可根据自己的实际情况,来修改默认的规则或者自定义新规则等操作,从而可以有效降低病毒侵入的概率。
添加删除组
  打开“GSS客户端”程序,默认选择的是“首页”标签,我们从中单击“配置”按钮,在弹出的“程序规则”对话框内,左侧“树形栏”已经为大家分好了“全局注册表规则”和“应用程序规则”的栏目,并且其下方还有好几个组件。
  如果此时你想添加新组,可以在“分组名称”和“分组说明”文本处,输入想要创建组的相关信息,而后单击“添加分组”按钮,就可将其添加到左侧组件中。反之删除组件,只要选择想要删除的分组,单击“删除分组”按钮,就可将选中组的删除掉。
配置注册表规则
  GSS默认情况下,已经为各个分组设置了相关的配置,如果你对默认的配置不满意,可以对它进行更改。这里选择不满意的分组,右侧窗口就会列出该组所包含的注册表,以及其相关项,然后从中选择不满意的键值设置,下方就会显示出默认设置的操作规则(图1)。

  为了安全起见,你可依自己的实际情况,对事件操作、执行动作来进行勾选设置,当然你也可以不做修改,可按照默认设置保护注册表的安全。
导出、导入分组
  如果此时你想将以上配置好的规则,导出与其他人共同分享,可以选中左侧里面的某个分组后,单击右侧窗口里的“导出分组”按钮,就可将当前分组信息导出,并且以Ghst文件的格式保存到硬盘上。另外相反单击“导入分组”按钮,则可以将硬盘里的分组信息导入到GSS规则内。
监视改动有提醒 病毒修改请绕道
  以上规则都已经设置完毕后,GSS防火墙就开始自动监视注册表的举动。如果系统里的某个程序要改写注册表,此时GSS就会自动弹出警告的对话框,给予用户详细键值信息的修改提示(图2)。

  大家可根据其信息来判断它是否为恶意修改,还是正常程序的加载,从而可以选择单击“允许”按钮对注册进行修改操作,反之单击“拦截”按钮,拒绝对注册表的读写操作,来保证注册表的安全。

 
From:http://www.itcomputer.com.cn/Article/Software/201309/338.html
  • 上一篇文章:

  • 下一篇文章:
  • Copyright © 2005-2013 电脑知识网 Computer Knowledge   All rights reserved.