封USB移动存储的程序

来源:互联网 发布:线刷宝软件下载 编辑:程序博客网 时间:2024/05/08 11:14
    现在USB存储越来越多,给商业信息的安全带来很大威胁。虽然在BIOS里面可以禁用USB,可是鼠标键盘都是使用USB的接口。如何既能防止使用U盘又能使键盘鼠标正常运行?
    经过了解,在xp里面封锁USB存储的不外乎两种方法,第一种,修改注册表,将USBSTOR的star值改为4;2、将XP自带的U盘驱动程序inf文件改为不可读。为了保险起见,还要将注册表限制住,不让人随便使用regedit来修改注册表。
    下面分步说明如何来做:
  1. 为了修改注册表,需要引用1个库,Microsoft.win32
  2. 为了修改移动存储的驱动程序,需要引用 System.io
  3. 注册表里面“Local_MACHINE/SYSTEM/CurrentControlSet/Services”会有一个USBSTOR的键值。请注意,这个键只有在曾经插入过移动存储器后才可以建立。如果是新机器,以前没有插过U盘或者其他的存储设备,则不会有这个键值,需要重新建立。
  4. 我们下一段程序如下:
    1.                 '将注册表修改,使其无法使用U盘存储
    2.                 Dim rk As RegistryKey = Registry.LocalMachine
    3.                 Dim rkServices As RegistryKey = rk.OpenSubKey("SYSTEM/CurrentControlSet/Services"True)
    4.                 Dim rkUsbStor As RegistryKey
    5.                 Dim UsbStors() As String = rkServices.GetSubKeyNames
    6.                 Dim haveUsbStor As Boolean
    7.                 '判断USBSTOR是否存在
    8.                 For Each str As String In UsbStors
    9.                     If str = "USBSTOR" Then
    10.                         haveUsbStor = True
    11.                     End If
    12.                 Next
    13.                 If haveUsbStor Then
    14.                     rkUsbStor = rkServices.OpenSubKey("USBSTOR"True)
    15.                 Else
    16.                     rkUsbStor = rkServices.CreateSubKey("USBSTOR", RegistryKeyPermissionCheck.ReadWriteSubTree)
    17.                 End If
    18.                 rkUsbStor.SetValue("Start""4", RegistryValueKind.DWord)

  5. 以上代码将 USBSTOR子项的STAR键值改为 4 。(默认是3)
  6. 下面将一定存储的驱动程序改名。曾经尝试过将相应文件的权限修改点,不过真的是很麻烦。。。
  7. 代码如下:
                        System.IO.File.Move("c:/windows/inf/usbstor.pnf", "c:/windows/inf/usbstor.pnf.old")
                        System.IO.File.Move("c:/windows/inf/usbstor.inf", "c:/windows/inf/usbstor.inf.old")
  8. 以上代码将驱动文件后面添加了一个old后缀,这样插入U盘以后就找不到驱动程序了。就算找到其他的驱动程序,由于第一条已经限制,所以也不会显示移动盘符。
  9. 下面的操作是可选的,就是将注册表编辑器锁定:
                  
    1. '将注册表锁定
    2.                 Dim rk As RegistryKey = Registry.CurrentUser
    3.                 Dim rkDisable As RegistryKey = rk.OpenSubKey("Software/Microsoft/Windows/CurrentVersion/Policies"True)
    4.                 Dim rkSystem As RegistryKey
    5.                 Dim subKeyName() As String = rkDisable.GetSubKeyNames
    6.                 Dim Bl As Boolean
    7.                 For Each name As String In subKeyName
    8.                     If name = "System" Then
    9.                         Bl = True
    10.                     End If
    11.                 Next
    12.                 If Bl Then
    13.                     rkSystem = rkDisable.OpenSubKey("System"True)
    14.                 Else
    15.                     rkSystem = rkDisable.CreateSubKey("System", RegistryKeyPermissionCheck.ReadWriteSubTree)
    16.                 End If
    17.                 '值是零,就代表允许编辑
    18.                 rkSystem.SetValue("DisableRegistryTools", 1, RegistryValueKind.DWord)

  10. 经过以上操作就可以将移动存储进行了锁定。
  11. 有几点是必须的:1、安装Framework2.0;2、修改驱动文件名的时候需要注意,一定要添加try catch。这样可以防止读写文件时候的异常。
  12. 做了一个界面,大家看看:
  13. 相应程序的下载地址:http://download.csdn.net/source/569966

原创粉丝点击