http://support.microsoft.com/kb/823732/zh-cn#top),简单拆解了一下该软件,结论如下。

    该程序采用易语言编写,所有后缀名为fnr、fne的文件都是易语言运行时库文件(暂时发现不需要eAPI.fne、eCalc.fne、spec.fne等3个文件)。程序运行后隐藏Pxqdqgl.exe进程,这是通过调用IO.dll的HideProcess接口来实现。程序首次运行时会在system32目录下创建cysys.ocx和ie32.inf等2个文件,其中ie32.inf文件实际上是用来加密存储软件的密码,如果程序运行时删除了该文件则只有重启动系统才能恢复该文件;卸载时ie32.inf文件会自动删除。

    程序实现了在单机上对USB存储设备的禁用控制,用FileMon&RegMon监视分析发现,其基本原理是修改注册表相关键值,详见KB823732《如何禁用 USB 存储设备》。当程序运行时,执行以下操作:

        1.修改HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit,在userinit.exe后增加Pxqdqgl.exe(开机运行);

        2.修改HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR\Start,如果是禁用USB就设为4,如果是启用就设为3;

    程序反复执行1、2步骤(大概半秒钟一次),控制方式够简易的

android 禁用usb 接口的app usb禁用软件_程序运行


    当卸载程序时,首先恢复注册表键值,然后退出程序。

    这种修改注册表的方法只能禁用曾经在该计算机上使用过(已安装过)的设备,新的(未安装过的)USB存储设备至少可以使用一次,这就是该程序的缺陷。既然都做到这一步了,干嘛不绑个xcacls.exe,调命令行把驱动文件的权限也一并设了呢,或者干脆把驱动文件重命名,并每半秒检查一次该位置是否存在同名文件。。。

android 禁用usb 接口的app usb禁用软件_键值_02