win10下安装修改INF文件后的驱动,出现如下错误:
.经过查阅资料,发现需要数字签名,看了下有两种解决方法,第一种是自己给INF驱动文件签名,第二种是取消Windows的强制数字签名设置。想了想,后期驱动开发应该还是要学习如何给驱动签名,所以这里我采用第一种方法了。
1 工具准备
需要使用到 Inf2Cat,makecert,Signtool,CertMgr 等工具,需要下载Windows 10 SDK来获取,可以通过Visual Studio Installer下载,也可以直接在官网下载。
制作签名证书
(1)打开Visual Studio的命令行工具
(2)制作证书,输入下列命令
makecert -r -pe -ss root -n CN="Company XUE CA" -$ commercial -b 01/01/2020 -e 01/01/2100 Cert1.cer
makecert 命令使用说明如下:
https://docs.microsoft.com/en-us/windows/win32/seccrypto/makecert
选择"是"
此时产生了Cert1.cer根证书
(3)导出PFX格式证书
Win+R,输入MMC,文件->添加删除管理单元->选择证书,添加到当前用户。
左边点证书=>受信任的根证书颁发机构->点开证书,
找到刚才安装的证书"My Company CA”,右击"所有任务"->“导出"进入证书导出向导:。
这里我直接导出到桌面,生成了Mycert1.pfx文件
原文链接:https://blog.csdn.net/qq_44447544/article/details/122379749
2 给INF文件签名
先生成Cat目录文件
下载好沃通代码签名精灵,以管理员身份运行,再把inf文件和其[SourceDisksFiles]节中调用的驱动文件都添加到 CAB/CAT中
生成的CAT文件和 inf文件放在同一目录下即可。命令行工具导引到这个文件夹下,然后运行下面命令。
再签名Cat文件
同样在命令行工具下执行:、
Signtool sign /v /fd sha256 /f cert1.pfx /p 123456 /n "Company XUE CA" /t http://timestamp.digicert.com *.cat
至此,驱动已经签名成功,驱动可以在设备管理器中手动安装完成
驱动安装
3.手动安装
若手动安装驱动,需要将inf,cat以及cer文件拷贝至目标电脑,首先需要安装证书,用管理员身份运行CMD,输入如下命令:
CertMgr /add cert1.cer /s /r localMachine root /all
其中Mycert1.cer为之前生成的根证书
安装完成,开始安装驱动:
4、启动计算机到测试模式
安装驱动成功!
测试签名,说明签名依然不过!
数字签名通过!
sha1签名通过!
SignTool.exe(签名工具)