usb设备无签名引发的问题

问题描述:
       平台:win2k sp4, usb设备在管理员帐户下安装后,不插入设备,切换到user用户下,再插入设备,系统自动寻找驱动,可最后出现拒绝访问的错误提示框,已经在策略(gpedit.msc)里给user用户指派了安装设备权限。如果设备第一次是在管理员帐户使用下,则切换到user权限用户下可以正常使用。

问题分析:
       经过多方面、多角度反复分析,结论如下:
 要在user下第一次可使用,必须要有正确的驱动签名。

理由:
      Aladdin etoken在user帐户下第一次使用,系统自动安装驱动,以下键KEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/USB/Vid_0529&Pid_0600/5&1f8fd7d0&0&1及其很多子键得以正确创建,当注释其inf文件中签名行CatalogFile
[Version]
 Signature   = $CHICAGO$
 Class       = USB
 ClassGuid   = {36FC9E60-C465-11CF-8056-444553540000}
 DriverVer   = 01/04/2006,3.65.24.0
 Provider    = %MFGNAME%
 ;CatalogFile = aksup.cat
出现与我同样错误,拒绝访问。并且管理员账户下也可以安装。
从安装日志setapi.log文件来看,以下为安装日志内容:

正在從 c:/winnt/inf/oem11.inf 安裝區段 DriverInstall.NT。此时切换到管理员账户下也能成功安装。

為 USB Token 安裝了一個未簽署或簽章無效的驅動程式 (c:/winnt/inf/oem11.inf)。錯誤 0x800b0003: 所指定的信任提供者不支援或不認得指定給此主題的表單。
正在將檔案 C:/a/etoken/aksup.sys 複製到 C:/WINNT/System32/Drivers/aksup.sys。
為 USB Token 安裝了一個未簽署或簽章無效的驅動程式 (C:/a/etoken/aksup.sys)。錯誤 0x800b0003: 所指定的信任提供者不支援或不認得指定給此主題的表單。
裝置安裝功能: DIF_REGISTER_COINSTALLERS。
已登錄輔助安裝程式。
裝置安裝功能: DIF_INSTALLINTERFACES。
正在從 c:/winnt/inf/oem11.inf 安裝區段 DriverInstall.NT.Interfaces。
已安裝介面。
裝置安裝功能: DIF_INSTALLDEVICE。
正在進行 USB/VID_0529&PID_0600/5&1F8FD7D0&0&1 的完整安裝。
正在處理服務新增/刪除區段 DriverInstall.NT.Services。
錯誤 5: 存取被拒。
裝置安裝完成,含有錯誤 錯誤 5: 存取被拒。
已經完成預設安裝程式,錯誤: 錯誤 5: 存取被拒。
已設定選取的驅動程式。
正在安裝 USB/VID_0529&PID_0600/5&1F8FD7D0&0&1 的 NULL 驅動程式。
裝置安裝完成,含有錯誤 錯誤 5: 存取被拒。

错误日志与我的雷同。注意看稍前的日志中提到未簽署或簽章無效的驅動程式。
另外aladdin的二个驱动文件都有签名,并且有二个inf文件,一个驱动安装在USB设备类下,一个在smartcardreader设备类下,而我们的二个驱动只一个有签名,并都安装在smartcardreader设备类下。aladdin的分开方式感觉更好。

至于采用强制操作注册表,写好必要的键值方法会失败,原因:
其一:user账户下很难通过常规或非常规方法提升进程权限为system,至少我还没找到。rootkit的手段都无法凑效。users下不能加载自己的驱动和服务。
其二:一些注册键值很难找到规律。这一串(USB/VID_0529&PID_0600/5&1F8FD7D0&0&1)倒是发现可以通过进程的参数得到:
安装设备驱动时,系统会启动rundll32进程,参数如下:
C:/WINNT/system32/rundll32.exe newdev.dll,DevInstall USB/Vid_096e&Pid_0401/5&1f8fd7d0&0&1USB/VID_0529&PID_0600/5&1F8FD7D0&0&1,co-install中即可容易得到。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值