4

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

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


所以现在的问题本质上是,如果我分发此过程中提到的所有 exe 并制作一个脚本来运行所有这些命令。那么驱动程序可以由用户使用脚本签名吗?

程序 :

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 localMachinetrustedpublisher

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

8.验证cat文件签名Signtool verify /pa /v /c MyDriver.cat MyDriver.inf

4

2 回答 2

3

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

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

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

于 2012-06-15T09:48:57.013 回答
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=呸呸呸

于 2015-05-04T08:17:50.097 回答