Windows驱动—64位驱动测试&64位驱动测试签名

前言

笔者在做windows 64位驱动开发的时候,同很多驱动初学者一样,发现 64位驱动不做数字签名在win7 64位上无法加载 即使将 关闭驱动强制签名 仍会 “Windows 无法验证此文件的数字签名。”的提示,这样的话我们开发者就无法进行驱动测试了!。由于在网上没找一篇满意的解决方案,故有此博文的诞生。这里笔者也是参考微软官方手册进行的操作,能达到 在windows vista 64位、win7 64位、win10 64位 进行64位驱动测试的效果。

为啥关闭驱动强制签名失效了?

从 Windows Vista 开始,基于 x64 的 Windows 版本要求在内核模式下运行的所有软件(包括驱动程序)进行数字签名才能加载。 也就是说在开发期间对驱动程序进行测试签名才能进行测试。

具体操作

这里我们明确我们手上有2台机器,分别做如下任务。

  1. 驱动开发机:安装有WDK开发环境可以进行,64位驱动文件生成、测试证书生成、使用测试证书进行驱动文件签名。
  2. 驱动测试机:64位Windows操作系统 进行 64位驱动测试。

在驱动开发机上的操作:

  1. 创建测试证书

打开WDK开发环境命令行窗口,输入如下命令进行测试证书的创建。

makecert -r -pe -ss PrivateCertStore -n CN=Contoso.com(Test) -eku 1.3.6.1.5.5.7.3.3 ContosoTest.cer

其中,下面2个参数比较重要,在进行签名的时候会使用到。

  • -Ss 选项指定包含测试证书的证书存储的名称
  • -N CN = option 指定证书的名称,Contoso.com (Test) 。

此时会在当前目录下生成一张ContosoTest.cer证书。双击安装或者通过命令certmgr.msc到证书管理创建 将该证书导入到 受信任的根证书颁发机构。

  1. 使用测试证书进行驱动文件签名
SignTool sign /v /s PrivateCertStore /n Contoso.com(Test) /t http://timestamp.digicert.com F:\00_DriverTest.sys
  1. 验证已进行测试签名的驱动程序文件的签名 (可省略)
SignTool verify /v /pa F:\00_DriverTest.sys

在驱动测试机上的操作

  1. 安装前面创建的测试证书。
  2. 开启测试签名打开, 重启电脑生效。
 bcdedit  /set  testsigning  on
  1. 使用Driver Monitor测试或者其他驱动加载工具也可以。

笔者在win7 64和win10 64测试均可以正常加载。这里用一个未签名和一个带有测试签名的驱动测试。

在这里插入图片描述
在这里插入图片描述

结语

路漫漫其修远兮,吾将上下而求索,与诸君共勉。如果对上述操作有疑问可参阅微软官方介绍

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值