windows下WDK创建免费的测试证书,并签名windows驱动文件(附带测试效果)
编译了一个sys驱动文件,每次加载使用都需要手动开启【禁用强制驱动签名】,很麻烦,用测试证书签名,再也不用这么麻烦了!windows 驱动签名过程:
1.下载并安装WDK
- windows7 对应WDK下载地址
https://www.microsoft.com/en-us/download/confirmation.aspx?id=11800
- windows10、windows11 及其它版本对应WDK版本下载地址
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/other-wdk-downloads
2.创建测试用的自签证书
cd 到 makecert.exe 文件夹位置
cd C:\WinDDK\7600.16385.1\bin\amd64
创建证书(证书名请自行替换):KM_test.cer
makecert.exe -r -pe -ss PrivateCertStore -n CN=KM_test KM_test.cer
安装证书 KM_test.cer
certmgr.exe /add KM_test.cer /s /r localMachine root
命令行打开【证书管理器】查看证书,能用到2040年!
certmgr.msc
用此证书签名驱动文件:
下面命令请把"C:\Release\x64\kmclass64_w.sys" 替换为自己需签名的文件路径,把KM_test替换自己的证书名。
Signtool sign /a /v /s PrivateCertStore /n KM_test /t http://timestamp.verisign.com/scripts/timestamp.dll "C:\Release\x64\kmclass64_w.sys"
如果时间戳服务器失效了,是签名不了的,重新找一个可用的时间戳服务器替换上面命令行的
http://timestamp.verisign.com/scripts/timestamp.dll 即可这里是其他时间戳服务器:
http://sha256timestamp.ws.symantec.com/sha256/
http://timestamp.comodoca.com/rfc3161
http://tsa.wosign.com/timestamp
http://tsa.starfieldtech.com
http://timestamp.globalsign.com/scripts/timstamp.dll
http://rfc3161timestamp.globalsign.com/advanced
http://timestamp.digicert.com
http://time.certum.pl
http://timestamp.verisign.com/scripts/timestamp.dll
http://timestamp.entrust.net/TSS/AuthenticodeTS
CMD打开测试模式,并重启就可以使用签名的驱动了:
bcdedit /set testsigning on
不用的时候可以关闭测试模式:
bcdedit /set testsigning off
至此,驱动签名成功!可以尽情的加载驱动了!
写个工具测试一下效果:
完毕!