我是个人,不是公司,我正在开发虚拟内核模式设备驱动程序。我知道我可以对驱动程序进行测试签名并在测试模式下运行。但是我想免费分发我的驱动程序,但我没有资源通过威瑞信或全局签名购买签名,因为它非常昂贵,而且我没有通过这个驱动程序赚取任何收入。
此外,对于某些用户来说,测试签名驱动程序将是一项艰巨的任务。所以我想知道是否有任何解决方法可以在 64 位中使用没有签名的驱动程序?就像运行它兼容 32位 ,或者可以代表用户对驱动程序进行自签名的脚本。
所以现在的问题是,如果我分发此过程中提到的所有 exe 并制作一个脚本来运行所有这些 命令。然后,用户是否可以使用 脚本?
程序:
1.execute Inf2Cat.exe/driver:"U:\MyDriver"/os:7_X64
2.Find makecert.exe in WDK Makecert -r -pe -ss PrivateCertStore -n "CN=TestCertforWDK" TestCert.cer
3.使用 Signtool.exe 在 WDK 中对 cat 文件进行签名 签名工具 sign/v/s PrivateCertStore/n TestCertForWDK/t http://timestamp.verisign.com/scripts/timestamp.dll "U:\我的驱动程序\MyDriver.cat"
4.使用 Signtool.exe 在 WDK 中对驱动程序进行签名 签名工具 签名/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 可信发布者
7.验证驱动程序的签名 签名工具 验证/pa/v 我的驱动程序.sys
8.验证 cat 文件的签名 签名工具 验证/pa/v/c MyDriver.cat MyDriver.inf
所以这个问题的答案是一个大胖子。很抱歉,但除非您找到用户驱动的解决方法,或者愿意赞助(签署您的驱动程序)的公司,否则这是不可能的(我的意思是不可能:))。此功能已在窗口中实现,以防止安装讨厌的rootkit。
尽管它可能看起来很苛刻,但它阻止了许多rootkit能够在用户计算机上安装。事实上,Microsoft最近修补了一个与驱动程序签名相关的漏洞,该漏洞允许黑客在Windows中使用微软的签名引擎对系统接受的驱动程序进行签名。
我非常怀疑您是否找到了以编程方式解决此问题的方法。如果你这样做,请告诉我。
对驱动程序进行签名是在用户计算机上获取驱动程序并轻松运行它的唯一正确方法。不能期望用户将计算机置于测试签名模式。我认为您可以参考测试签名成本来了解它的成本,我建议您尝试长期考虑您的驱动程序进行投资。不确定利率是否有任何变化。
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