前言
从 Windows 8 开始,微软在操作系统中引入了驱动程序强制签名的安全特性,没有正确签名的驱动将直接无法安装。这毫无疑问的增强了系统的安全性,但同时你可能会遇到老设备装不上驱动、自己修改 INF
文件后校验错误等问题。一个常用的解决方法是禁用驱动程序强制签名,这需要修改引导参数并重新启动系统,而且启动后你会发现屏幕右下角有 Test mode
字样(虽然有办法去除)。最麻烦的是有些游戏厂商miHoYo的反作弊机制会禁止使用测试模式开始游戏,如果你的未签名驱动是阵列卡之类的重要硬件的话,这就很蛋疼了。这时唯一解决办法就是自己给驱动签名,一劳永逸,彻底摆脱测试模式。
创建证书
从 Windows PowerShell 3.0 版本(Windows Server 2012、Windows 8 自带)开始你可以执行 New-SelfSignedCertificate
命令来创建自签名证书:
$cert = New-SelfSignedCertificate -DnsName konata.tech -Type CodeSigning -CertStoreLocation Cert:\CurrentUser\My
$CertPassword = ConvertTo-SecureString -String mypass -Force -AsPlainText
Export-PfxCertificate -Cert "cert:\CurrentUser\My\$($cert.Thumbprint)" -FilePath "C:\konatacodecer.pfx" -Password $CertPassword
给驱动签名
下载 沃通代码签名工具(虽然沃通名声很臭,但这个工具挺好用的)。
打开代码签名工具,选择
CAB/CAT
标签打开要签名的
INF
文件,将SourceDisksFiles
等项目内使用到的驱动文件都添加到窗口中点击创建
CAT
按钮,将CAT
文件保存到INF
文件同目录下点击代码签名标签,选择刚刚生成的
pfx
证书,并输入密码mypass
点击签名按钮,完成后可以看到生成的
CAT
文件
安装证书和驱动
如果你现在打开上面生成的 CAT
文件,会提示证书目录无效,这是因为我们自己生成的证书还没被信任,需要手动添加证书到信任列表。
- 打开第一步生成的
pfx
证书,选择存储位置为Local Machine
- 点击下一步输入密码
mypass
- 点击下一步选择证书存储区域,选择
Place all certificates in the following store
,单击浏览选择Trusted Root Cerification Authorities
- 点击下一步完成,我们自己创建的证书就被系统信任了
接下来就可以安装驱动了,右键点击 INF
文件选择安装,如果驱动安装成功会显示操作成功完成,这时可以愉快的使用新硬件啦。