【问题标题】:Windows Driver - Unable to sign my own driver correctlyWindows 驱动程序 - 无法正确签署我自己的驱动程序
【发布时间】:2018-03-04 21:57:23
【问题描述】:

我是 Windows 驱动程序开发的初学者。我编写了一个简单的 DbgPrint() .sys 驱动程序。

经过大量搜索,我发现在 x86 架构中,.sys 驱动程序的签名是可选的,但在 x64 中是强制性的。 所以我手动创建了一个证书:

makecert -r -n "CN=MyCompany" -ss MyCompanyCertStore -sr LocalMachine

之后,我将其导出为(例如)GlobalSign.cer 并添加到我的证书列表中:

certmgr.exe -add GlobalSign.cer -c -s -r localMachine Root
certmgr.exe -add GlobalSign.cer -c -s -r localMachine TrustedPublisher

然后,我将MyDriver1.sysMyDriver1.inf 放入c:\MyDriver1 文件夹并创建了目录文件:

inf2cat /driver:"c:\MyDriver1" /os:7_x64

并且已经签名:

SignTool sign /s MyCompanyCertStore /n MyCompany /t http://timestamp.verisign.com/scripts/timestamp.dll c:\MyDriver1\mydriver1.cat

完成! 但是当我在OSR Driver Loader 程序中加载MyDriver1.sys 时,它会显示这个错误:

---------------------------
OSRLOADER
---------------------------
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.

---------------------------
OK   
---------------------------

我不知道为什么。

注意目录文件的安全目录选项卡中只有MyDriver1.inf条目,我无法添加MyDriver1.sys条目。

这里是MyDriver1.inf的内容(最初由Visual Studio制作,但我只将CatalogFile=改为CatalogFile=mydriver1.cat

;
; MyDriver1.inf
;

[Version]
Signature="$WINDOWS NT$"
Class=
ClassGuid=
Provider=
DriverVer=09/21/2017,21.4.29.698
CatalogFile=

[DestinationDirs]
DefaultDestDir = 12


[SourceDisksNames]
1 = %DiskName%,,,""

[SourceDisksFiles]


[Manufacturer]
%ManufacturerName%=Standard,NTamd64

[Standard.NTamd64]


[Strings]
ManufacturerName=""
ClassName=""
DiskName="MyDriver1 Source Disk"

【问题讨论】:

    标签: windows cat drive digital-certificate inf


    【解决方案1】:

    KMCS 不使用证书存储(它是在用户模式下实现的,所以这很有意义......)。

    为您的驱动程序签名的证书链的根证书必须在Cross-Certificates for Kernel Mode Code Signing 页面上列出的那些中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-07
      • 2016-11-18
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 1970-01-01
      • 2020-10-06
      相关资源
      最近更新 更多