问题描述:
平台:win2ksp4,在管理员账号下安装usb设备后,不要插入设备,切换到用户账号,再插入设备。系统自动寻找驱动程序,但最后出现拒绝访问的错误提示框。在策略(gpedit.msc)中,用户被分配了安装设备的权限。如果第一次在管理员帐户下使用设备,可以通过切换到具有用户权限的用户来正常使用。
问题分析:
经过多方面多角度的反复分析,结论如下:
要在用户下首次可用,您必须拥有正确的驱动程序签名。
原因:
用户账号下第一次使用Aladdinetoken,系统自动安装驱动。以下键key _ local _ machine \ system \ current control set \ enum \ USB \ vid _ 0529 PID _ 0600 \ 51 F8 FD 7d 001及其许多子项已正确创建。当inf文件中的签名行CatalogFile被注释时。
[版本]
签名=$芝加哥$
Class=USB
class guid={ 36 fc9e 60-C465-11CF-8056-444553540000 }
驱动程序=2006年4月1日,3.65.24.0
提供程序=%MFGNAME%
;CatalogFile=aksup.cat
发生了和我一样的错误,访问被拒绝。也可以安装在管理员帐户下。
根据安装日志setapi.log文件,以下是安装日志的内容:
安装驱动部分安装。NT从c: \ winnt \ inf \ oem11.inf .此时切换到管理员帐号也能成功安装。
为USBToken安装了未签名或无效的签名驱动程序(C: \ winnt \ INF \ oem11.inf)。错误0x800b0003:指定的信任提供程序不支持或不识别为此主题指定的表单。
将文件c: \ a \ etoken \ aksup.sys复制到c:\ win nt \ system32 \ drivers \ AK sup . sys。
为USBToken安装了未签名或无效的签名驱动程序(C: \ a \ etoken \ aksup.sys)。错误0x800b0003:指定的信任提供程序不支持或不识别为此主题指定的表单。
安装函数:DIF _注册_共同安装者。
辅助安装程序已注册。
安装函数:DIF _安装接口。
安装驱动部分安装。来自c: \ winnt \ inf \ oem11.inf。
接口已安装。
安装函数:DIF _安装设备。
正在进行USB \ vid _ 0529 PID _ 0600 \ 51 F8 FD 7d 001的完整安装。
服务添加/删除部分驱动程序安装。正在处理NT.Services。
5:拒绝访问。
设备安装完成,但出现错误错误5:访问被拒绝。
已完成默认设置,错误:错误5:拒绝访问。
选定的驱动程序已经配置。
正在安装USB \ vid _ 0529 PID _ 0600 \ 51f 8 FD 7d 001的空驱动程序。
设备安装完成,但出现错误错误5:访问被拒绝。
日志和我的一样。请注意,未签名或无效的签名驱动程序在前面的日志中提到过。
另外,阿拉丁的两个驱动文件是签名的,有两个inf文件,一个驱动安装在USB设备类下,另一个安装在smartcardreader设备类下,而我们的两个驱动只有一个是签名安装在smartcardreader设备类下。阿拉丁的离别方式感觉更好。
至于注册表的强制操作,写入必要键值的方法将失败,因为:
第一,用户账号下很难通过常规或非常规的方法将流程权限升级到系统,至少我还没发现。rootkit的方法都行不通。用户不能加载自己的驱动程序和服务。
第二,有些注册的键值很难找到规则。该字符串(USB \ VID _ 0529 PID _ 0600 \ 51f 8 FD 7d 001)通过流程的参数发现是可用的:
安装设备驱动程序时,系统将使用以下参数启动rundll32进程:
c:\ win nt \ system32 \ rundll32.exenewdev.dll,devinstallbusb \ vid _ 096 epid _ 0401 \ 51 F8 FD 7d 001 USB \ vid _ 0529 PID _ 0600 \ 51 F8 FD 7d 001,可以在共装中轻松获得。