解决方法,以跳过64位Windows中的驱动程序签名

时间:2012-05-31 11:14:00

标签: windows driver kmdf

我是个人,而不是公司,我正在研究虚拟内核模式设备驱动程序。我知道我可以测试签名驱动程序并在测试模式下运行。但是,我想免费分发我的驱动程序,但我没有资源通过verisign或globalsign购买签名,因为它非常昂贵,而且我没有通过这个驱动程序赚取任何东西。

对于某些用户来说,测试签名驱动程序也是一项艰巨的任务。所以我想知道在64位中使用没有签名的驱动程序是否有任何解决方法?就像在32位兼容性中运行它,或者代表用户自行签署驱动程序的脚本。


  

所以现在问题基本上是,如果我分发此过程中提到的所有exes并制作一个脚本来运行所有这些   命令。然后可以使用用户签署驱动程序   脚本?

     

程序:

     

1.执行Inf2Cat.exe / driver:“U:\ MyDriver”/ os:7_X64

     

2.找到WDK中的makecert.exe Makecert -r -pe -ss PrivateCertStore -n“CN = TestCertforWDK”TestCert.cer

     

3.在WDK中使用Signtool.exe签署cat文件Signtool sign / v / s PrivateCertStore / n TestCertForWDK / t   http://timestamp.verisign.com/scripts/timestamp.dll   “U:\ MyDriver \ MyDriver.cat”

     

4.在WDK中使用Signtool.exe签署驱动程序Signtool sign / v / s PrivateCertStore / n TestCertForWDK / t   http://timestamp.verisign.com/scripts/timestamp.dll   “U:\ MyDriver \ MyDriver.sys”

     

5.在测试计算机上,导入证书:certmgr.exe / add TestCert.cer / s / r localMachine root

     

6.将其添加到受信任的发布者列表certmgr.exe / add TestCert.cer / s / r localMachine trustedpublisher

     

7.验证驱动程序的标志Signtool verify / pa / v MyDriver.sys

     

8.验证cat文件的符号Signtool验证/ pa / v / c MyDriver.cat MyDriver.inf

2 个答案:

答案 0 :(得分:3)

所以这个问题的答案是一个大胖子。对不起,除非你找到一个用户驱动的解决方法,或者某个公司愿意赞助(签署你的驱动程序),这是不可能的(我的意思是不可能的:))。此功能已在Windows中实现,以防止安装它们讨厌的rootkit。

尽管看起来可能很苛刻,但它可以防止很多rootkit在用户计算机上安装。事实上,微软最近修补了一个与驱动程序签名相关的漏洞,该错误允许黑客在Windows中使用微软的签名引擎来签署系统可以接受的驱动程序。

我非常怀疑你是否找到了一种以编程方式解决问题的方法。如果你这样做,请告诉我。

答案 1 :(得分:0)

获取驱动程序签名是将驱动程序放在用户计算机上并且无需麻烦地运行它的唯一正确方法。您不能指望用户将计算机置于测试签名模式。我认为您可以参考测试签名成本来了解它的成本,我建议您尝试投资考虑您的驱动程序长期。不确定费率是否有任何变化。

https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/9a839ac3-4438-43bb-b1b8-4ed8da58ab45/how-much-does-it-cost-to-get-hck-certificates?forum=whck