改一下注册表

今天又面了一家,问我能不能禁用端口,问我能否在加载OS前拦截,输入密码正确后再加载操作系统(这个问题后面再说)。我估计他说的不是网络端口,就问他是不是网络的端口,BOSS指了指电脑。我明白了是USB的。正好昨天看了一下注册表的东西。我说这个理论上是没有问题的。改注册表就可以。不过我没有编过,可以尝试一下。

折腾注册表还是用VB,VC#容易。这个java还要用什么驱动。太复杂了。

刚才装上VS2005。百度后。发现把HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/USBSTOR下面的Start的3改成4就OK。现场手动修改了一下。没有问题。改成3,4确实能看是否打开关闭USB的存储功能。对USB接口的鼠标无压力。

好,百度vb程序。太复杂了。又百度C#程序。找到结果。

于是编码如下

Code:
  1. ...省略该加载的   
  2. using Microsoft.Win32;    
  3.   
  4. 。。。。省略该省略的。。。   
  5. //禁用u盘的代码   
  6.         private void button1_Click(object sender, EventArgs e)   
  7.         {   
  8.             RegistryKey hkml = Registry.LocalMachine;   
  9.             RegistryKey USBSTOR = hkml.OpenSubKey("system//CurrentControlSet//Services//USBSTOR"true);   
  10.             USBSTOR.SetValue("Start","4");//注意这里的4  
  11.         }   
  12. 。。。。省略剩下的。  

编译,报错,说object什么void类型。一看范例,是用“”我也就改成了双引号,再编译,成功

运行一下。没有问题。成功禁用掉。

现在再改回来,我继续手动改。我改,我改,改不会来了 。重启。问题依旧。

打开注册表。之前Start的值是reg_dword而程序运行完了之后变成了reg_sz,于是上网百度修复。

重写整个USBSTOR值

保存为1.reg

Code:
  1. Windows Registry Editor Version 5.00   
  2.   
  3.   
  4.   
  5. [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/USBSTOR]   
  6. "Type"=dword:00000001   
  7. "Start"=dword:00000003   
  8. "ErrorControl"=dword:00000001   
  9. "ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,/   
  10.   52,00,49,00,56,00,45,00,52,00,53,00,5c,00,55,00,53,00,42,00,53,00,54,00,4f,/   
  11.   00,52,00,2e,00,53,00,59,00,53,00,00,00   
  12. "DisplayName"="USB 大容量存储设备"  
  13.   
  14. [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/USBSTOR/Security]   
  15. "Security"=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,/   
  16.   00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,/   
  17.   00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,/   
  18.   05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,/   
  19.   20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,/   
  20.   00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,/   
  21.   00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00   
  22.   

问题解决。太恐怖了。没事不要动注册表,第二这个又重新看了set的所有方法,我暂时没办法sz改成dword。

用RegistryKey类还不如提前写好reg文件,直接调用呢。

能否在加载OS前拦截这个也可以。在加载OS的时候相应的地方插入一段代码就可以了。有意思的需求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值