给 Windows 驱动签名

前言

从 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

给驱动签名

  1. 下载 沃通代码签名工具(虽然沃通名声很臭,但这个工具挺好用的)。

  2. 打开代码签名工具,选择 CAB/CAT 标签

  3. 打开要签名的 INF 文件,将 SourceDisksFiles 等项目内使用到的驱动文件都添加到窗口中

  4. 点击创建 CAT 按钮,将 CAT 文件保存到 INF 文件同目录下

  5. 点击代码签名标签,选择刚刚生成的 pfx 证书,并输入密码 mypass

  6. 点击签名按钮,完成后可以看到生成的 CAT 文件

安装证书和驱动

如果你现在打开上面生成的 CAT 文件,会提示证书目录无效,这是因为我们自己生成的证书还没被信任,需要手动添加证书到信任列表。

  1. 打开第一步生成的 pfx 证书,选择存储位置为 Local Machine
  2. 点击下一步输入密码 mypass
  3. 点击下一步选择证书存储区域,选择 Place all certificates in the following store ,单击浏览选择 Trusted Root Cerification Authorities
  4. 点击下一步完成,我们自己创建的证书就被系统信任了

接下来就可以安装驱动了,右键点击 INF 文件选择安装,如果驱动安装成功会显示操作成功完成,这时可以愉快的使用新硬件啦。


转载规则

《给 Windows 驱动签名》Konata 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
  目录