2

我正在尝试制作可在 Windows 8 中安装的 USB 驱动程序,此 USB 驱动程序仅使用WinUSB

根据这篇文章,签名的 INF 驱动程序在它被签名的计算机上工作,而不是在其他人以及这个网站上实际 Windows 代码和驱动程序签名我所要做的就是生成一个.inf文件,生成一个.cat文件并签署这个.cat文件,但我签名部分有问题,其他步骤都可以。

我上面列出的网站清楚地表明,签署驱动程序仅使用 WinUSB 的目录文件不需要从任何授权的证书颁发机构购买任何证书。

您正在使用的内核模块已经由 Microsoft 签名,并且在安装驱动程序包后您可以轻松地将它们加载到内核中。

SignTool.exe在一个文件夹中还有mscvr-cross-gdroot-g2.crt. 在一个子文件夹中,假设MyFolder我有我的驱动程序包。

我的文件夹

├─ remsir.cat
├─ remsir.inf
│
├─┐ amd64\
│ ├ WdfCoInstaller01011.dll
│ ├ WinUSBCoInstaller2.dll
│ ├ WUDFUpdate_01011.dll
│
└─┐ i386\
  ├ WdfCoInstaller01011.dll
  ├ WinUSBCoInstaller2.dll
  ├ WUDFUpdate_01011.dll

所以,基本上我被困在这一点上:

SignTool.exe sign /v /ac "mscvr-cross-gdroot-g2.crt" /n "Pololu Corporation" /t http://tsa.starfieldtech.com MyFolder\remsir.cat

该命令行是从其他问题中复制的,但对我不起作用。我试图更改一些参数但仍然没有成功,我做什么都没关系,我总是收到错误消息:

SignTool 错误:未找到满足所有给定条件的证书。

首先,我不确定是否应该从此命令行更改任何参数。他们对我来说并不是很清楚他们的意思。

所以..我是否必须更改该命令行中的任何参数?我必须安装mscvr-cross-gdroot-g2.crt或什至Pololu Corporation?如果是,如何?

4

2 回答 2

2

您需要从 GlobalSign 等公司购买签名证书。是的,Windows 信任驱动程序的 winusb 组件,但 Windows 8 不允许您安装 INF 文件,除非它由真实证书签名。

你给我的报价是:

您正在使用的内核模块已经由 Microsoft 签名,并且在安装驱动程序包后,您可以轻松地将它们加载到内核中。

这句话仍然是正确的。关键是您甚至无法安装驱动程序包,除非您签署 INF 文件。

您在我的示例中看到的Pololu Corporation是我公司的名称,该部分需要更改为您的公司名称。它需要与您购买的证书中嵌入的公司名称完全匹配。

编辑 1:Windows 8 实际上不需要 WinUSB 的 INF 文件

如果您能够更改设备的固件,那么您可以避免为您的 WinUSB 设备购买证书。对于 Windows 8 支持,您应该按照 USB 核心团队的这些说明来加载您的设备,而无需 INF 文件:

http://blogs.msdn.com/b/usbcoreblog/archive/2012/09/26/how-to-install-winusb-sys-without-a-custom-inf.aspx

因为您没有提供 INF 文件或 SYS 文件,所以我强烈希望您不需要为 Windows 8 签署任何文件。

对于 Windows 7 和更早版本,您需要提供 INF 文件以将您的设备与 WinUSB 关联,但不需要对 INF 文件进行签名,因为这些版本不需要它。

于 2013-07-16T21:11:12.100 回答
0

目标:

安装一个.inf使用WinUSB作为内核模式代码的文件。

解决方案:

我解决了我的问题,不完全是我最初签署.cat文件的想法。

对于大多数人来说,我的回答可能令人失望,而且我可能会因为没有使用最佳实践等而受到很多批评。这很不雅,听起来更像是一种解决方法,而不是真正的解决方案。但考虑到公司的主营业务和对Windows 8驱动使用的急迫,我得出了一个让公司满意的解决方案。

在谈到安装未签名的驱动程序时,Windows 7 与 Windows 8 之间的主要区别在于,Windows 7 会显示一条恼人的红色警告消息,建议用户不要安装未签名的驱动程序,而 Windows 8 在正常情况下只是不安装它反正。

我们一直与 Windows 7 中的这个警告共存,所以我所做的就是重新配置 Windows 8 以像 Windows 7 一样运行。

步骤1:

在我的软件安装结束时,安装程​​序会运行一个验证 Windows 版本的程序,如果是 Windows 8,它会提示一个对话框,要求安装驱动程序并建议它将要求重新启动 Windows。如果用户同意,它将运行一个批处理文件:

第2步:

当用户登录时,它将运行第二个批处理文件,该文件被设置为运行到 RunOnce。它会做:

此时将安装驱动程序并恢复原始设置。恼人的红色警告信息仍然存在,就像在 Windows 7 中一样,生活还在继续……

于 2013-07-18T18:28:15.050 回答