【发布时间】: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.sys 和MyDriver1.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