Chinaunix首页 | 论坛 | 博客
  • 博客访问: 445748
  • 博文数量: 78
  • 博客积分: 2307
  • 博客等级: 上尉
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-04 00:31
个人简介

IT老鸟,信息安全硕士。

文章分类
文章存档

2017年(2)

2012年(21)

2011年(55)

分类: IT职场

2011-06-07 12:59:27

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

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

刚才装上VS2005。百度后。发现把HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/USBSTOR下面的Start3改成4OK。现场手动修改了一下。没有问题。改成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的时候相应的地方插入一段代码就可以了。有意思的需求。

阅读(1700) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~