admin 管理员组文章数量: 887006
前言
笔者在做windows 64位驱动开发的时候,同很多驱动初学者一样,发现 64位驱动不做数字签名在win7 64位上无法加载 即使将 关闭驱动强制签名 仍会 “Windows 无法验证此文件的数字签名。”的提示,这样的话我们开发者就无法进行驱动测试了!。由于在网上没找一篇满意的解决方案,故有此博文的诞生。这里笔者也是参考微软官方手册进行的操作,能达到 在windows vista 64位、win7 64位、win10 64位 进行64位驱动测试的效果。
为啥关闭驱动强制签名失效了?
从 Windows Vista 开始,基于 x64 的 Windows 版本要求在内核模式下运行的所有软件(包括驱动程序)进行数字签名才能加载。 也就是说在开发期间对驱动程序进行测试签名才能进行测试。
具体操作
这里我们明确我们手上有2台机器,分别做如下任务。
- 驱动开发机:安装有WDK开发环境可以进行,64位驱动文件生成、测试证书生成、使用测试证书进行驱动文件签名。
- 驱动测试机:64位Windows操作系统 进行 64位驱动测试。
在驱动开发机上的操作:
- 创建测试证书
打开WDK开发环境命令行窗口,输入如下命令进行测试证书的创建。
makecert -r -pe -ss PrivateCertStore -n CN=Contoso(Test) -eku 1.3.6.1.5.5.7.3.3 ContosoTest.cer
其中,下面2个参数比较重要,在进行签名的时候会使用到。
- -Ss 选项指定包含测试证书的证书存储的名称。
- -N CN = option 指定证书的名称,Contoso (Test) 。
此时会在当前目录下生成一张ContosoTest.cer证书。双击安装或者通过命令certmgr.msc到证书管理创建 将该证书导入到 受信任的根证书颁发机构。
- 使用测试证书进行驱动文件签名
SignTool sign /v /s PrivateCertStore /n Contoso(Test) /t http://timestamp.digicert F:\00_DriverTest.sys
- 验证已进行测试签名的驱动程序文件的签名 (可省略)
SignTool verify /v /pa F:\00_DriverTest.sys
在驱动测试机上的操作
- 安装前面创建的测试证书。
- 开启测试签名打开, 重启电脑生效。
bcdedit /set testsigning on
- 使用Driver Monitor测试或者其他驱动加载工具也可以。
笔者在win7 64和win10 64测试均可以正常加载。这里用一个未签名和一个带有测试签名的驱动测试。
结语
路漫漫其修远兮,吾将上下而求索,与诸君共勉。如果对上述操作有疑问可参阅微软官方介绍。
版权声明:本文标题:Windows驱动—64位驱动测试&64位驱动测试签名 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1733398389h1585719.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论