gpt4 book ai didi

digital-signature - Win7 64 位遗留 nt4 驱动程序签名问题

转载 作者:行者123 更新时间:2023-12-04 07:45:13 27 4
gpt4 key购买 nike

从 WinXP 开始,我就不再使用 Windows DDK(现在是 WDK),而且我注意到一些重大变化。

我正在使用最新的 Win7 DDK 开发旧版 NT4 过滤器驱动程序(没有 .inf 和没有 .cat),我的环境是

Windows 7 64bit
Visual Studio 2010
WinDDK v7600.16385.1
VisualDDK plugin for VS (latest version)

我在自签名此驱动程序时遇到问题,因为我仍在开发它,我没有(也不知道如何获得)适当的 WHQL 证书,因此我正在按照我在网上找到的程序进行操作.

@echo off

set SIGNTOOL="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe"
set MAKECERT="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\makecert.exe"
set PVK2PFX="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\pvk2pfx.exe"
set CERTPVK="C:\Users\myself\Desktop\testdriver\avtxagent\package\mycompanynametest.pvk"
set CERTPFX="C:\Users\myself\Desktop\testdriver\avtxagent\package\mycompanynametest.pfx"
set CERT="C:\Users\myself\Desktop\testdriver\avtxagent\package\mycompanynametest.cer"
set DRIVER="C:\Users\myself\Desktop\testdriver\avtxagent\package\avtxagent.sys"
set CERTSUBJ="mycompanyname (test)"

del *.cer *.pfx *.pvk
cls
%MAKECERT% -r -n "CN=mycompanyname (test)" -sv %CERTPVK% %CERT%
%PVK2PFX% -pvk %CERTPVK% -spc %CERT% -pfx %CERTPFX%
pause
cls
%SIGNTOOL% sign /v /f %CERTPFX% /t "http://timestamp.verisign.com/scripts/timestamp.dll" %DRIVER%
pause
cls
:: verification
%SIGNTOOL% verify /pa /v %DRIVER%

pause

基本上我所做的是每次都生成证书(我已经尝试过只生成一次证书,仍然是同样的问题),签署我的驱动程序然后尝试验证签名。在最后一步,即验证中,我遇到了问题:

SignTool Error: A certificate chain processed, but terminated in a
root certificate which is not trusted by the trust provider.

显然,当我尝试以编程方式和使用 sc 安装并启动旧版驱动程序时,出现错误:

[SC] CreateService SUCCESS
[SC] StartService FAILED 577:

Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source.

如果我遵循本指南 http://technet.microsoft.com/en-us/library/cc754841.aspx并在 Trusted Certification 中导入证书,验证过程进行得很顺利,但我从 sc 得到了同样的错误。

我做错了什么?而且,由于文档有点缺乏,是否有人可以解释我必须做什么才能获得在生产环境中使用的适当证书?

最佳答案

您不需要 WHQL 签名来签署内核模式驱动程序。您需要的是从 GlobalSign 或 Verisign 购买的代码签名证书(其他的行不通)。当你有一个时,使用这个代码签名证书来签署你的驱动程序。注意:您还需要包括 cross-certificate from Microsoft .

或者(仅用于调试目的)您可以在测试模式下加载系统,其中不检查签名。为此,您需要在系统启动时按 F8 并在菜单中选择相应的选项。

关于digital-signature - Win7 64 位遗留 nt4 驱动程序签名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13956460/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com