VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#保护注册表

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  注册表在操作系统中起着非常重要的地位,如果注册表被非法用户修改,很有可能使系统中的某些程序无法运行,甚至会造成整个系统的崩溃。为了防止由于非法用户擅自使用计算机给用户带来的损害,用户必须使用相关技术来保护注册表。为了防止由于注册表的改动而对计算机产生影响,用户可以通过禁止使用注册表编辑器的方法来禁止用户使用注册表。过通Microsoft.Win32命名空间下的Registry类与RegistryKey类,实现在注册表中的“HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem”子项中新建一个名为DisableRegistryTools的双字节值项,并将该值项的数值数据设置为1。如果要恢复注册表为允许使用的状态,可以使用RegDeleteKey类删除System子项。

  注意:在进行此项操作之前,笔者建议用户应从安全角度出发,首先对注册表文件进行备份或准备另外一个注册表修改工具,因为在进行此项操作之后,用户就无法使用注册表编辑器来打开注册表了。另外,如果用户需要使用注册表编辑器,可以在“安全模式”下对注册表进行修改等操作。

  通过操作注册表控制“注册表编辑器”,单击“禁用Regedit”按钮,这时在“运行”窗口中输入“regedit”命令,将弹出不可用提示信息。这样便可以防止非法用户修改注册表。为了方便使用,这里提供了启用注册表的功能。单击“启用Regedit”按钮后,这时用户便可以正常操作注册表。

  禁用注册表编辑器,通过Registry类的CreateSubKey方法在"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem"键下创建一个“DisableRegistryTools”子键并且另其键值为“1”,程序代码如下:    privatevoidbutton2_Click(objectsender,EventArgse)
    {
      try
      {
        RegistryKeyrgK=Registry.CurrentUser.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem");
        rgK.SetValue("DisableRegistryTools",1,RegistryValueKind.DWord);
        MessageBox.Show("禁用成功!!!");
      }
      catch{}
    }

  启用注册表编辑器,通过RegistryKey类的DeleteSubKey方法删除"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem"键,便可以正常使用注册表编辑器,程序代码如下:privatevoidbutton1_Click(objectsender,EventArgse)
    {
      try
      {
        RegistryKeyrgK=Registry.CurrentUser;
rgK.DeleteSubKey(@"SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem");
        MessageBox.Show("启用成功!!!");
      }
      catch{}
    }



相关教程