• 【飘雪驱动器管理大师(USB禁用、USB加锁)】原理分析


        因为公司要封USB口存储设备,同事随便找了这款免费软件测试了一下,下载的是1.0版,测试以后告诉我说很奇怪,非要使用过一次的U盘才能被软件禁用,新来的U盘可以照常使用。于是我对照微软官方提供禁用USB存储设备的方法(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步骤(大概半秒钟一次),控制方式够简易的
        当卸载程序时,首先恢复注册表键值,然后退出程序。
        这种修改注册表的方法只能禁用曾经在该计算机上使用过(已安装过)的设备,新的(未安装过的)USB存储设备至少可以使用一次,这就是该程序的缺陷。既然都做到这一步了,干嘛不绑个xcacls.exe,调命令行把驱动文件的权限也一并设了呢,或者干脆把驱动文件重命名,并每半秒检查一次该位置是否存在同名文件。。。说的太多,打住。
  • 相关阅读:
    LeetCode Subsets II
    LeetCode Rotate Image
    LeetCode Palidrome Number
    LeetCode Generate Parentheses
    LeetCode Maximum Subarray
    LeetCode Set Matrix Zeroes
    LeetCode Remove Nth Node From End of List
    Linux Loop设备 使用
    Linux 文件系统大小调整
    LeetCode N-Queens II
  • 原文地址:https://www.cnblogs.com/cancelpj/p/1156093.html
Copyright © 2020-2023  润新知