4

在签署我的内核模式驱动程序并为其创建服务时遇到了一些麻烦。

因此,我使用 makecert 创建了一个自签名证书:

makecert -r -pe -n "CN=XXX" -ss "XXX" -sr LocalMachine

然后使用证书管理管理单元我将证书导出到 .pfx 文件并使用 signtool 对 .sys 驱动程序进行签名:

signtool sign /f myCert.pfx /p xxx /t http://timestamp.comodoca.com/authenticode driver.sys

这是成功的。使用 signtool 进行验证后,我收到:

验证:driver.sys 文件哈希(sha1):9A...7F

Signing Certificate Chain:
    Issued to: XXX
    Issued by: xxx
    Expires:   Sat Dec 31 16:59:59 2039
    SHA1 hash: 12...46

The signature is timestamped: Sun Jun 10 03:35:21 2012
Timestamp Verified by:
    Issued to: UTN-USERFirst-Object
    Issued by: UTN-USERFirst-Object
    Expires:   Tue Jul 09 11:40:36 2019
    SHA1 hash: E1...46

        Issued to: COMODO Time Stamping Signer
        Issued by: UTN-USERFirst-Object
        Expires:   Sun May 10 16:59:59 2015
        SHA1 hash: 3D...C8

Successfully verified: driver.sys

Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0

但是,当我尝试为它创建服务时:

sc create ncd binPath= C:\Windows\System32\drivers\driver.sys type= kernel

(binpath 已验证存在),服务已创建,但大约 10-20 秒后,“程序兼容性助手”出现了令人讨厌的“Windows 需要数字签名驱动程序”对话框。

程序兼容性助手

是什么赋予了?它被证明是签名的。我已经尝试了该过程三遍,但没有成功。我已经尝试启动该服务,但我得到一个带有 BC 代码的 BSOD,它指的是这个问题(未签名的驱动程序在 XP/32 位 7 上工作得很好)。

4

1 回答 1

0

您可以在此处找到一些有用的文档:http: //msdn.microsoft.com/en-us/library/windows/hardware/dn170454 (v=vs.85).aspx

正如卢克所说,您需要这两个步骤,提供的链接解释了第 2 步。使用从 Microsoft 获得的交叉证书,您应该签署这些驱动程序。签名是使用 Win sdk 工具完成的。

于 2014-01-10T08:58:53.050 回答