64位驱动签名工具64Signer

64位驱动签名工具64Signer

【作者:Jimmy Huang】【原始URL:http://www.yiiyee.cn/Blog/64signer/】【下载工具】

  • 背景介绍

微软对于自Vista开始的64位OS有新的数字签名策略,即所有内核驱动都必须是经过可信机构签发过数字证书的,否则系统拒绝加载,其目的是为了加强系统安全防护,使得一干惯于偷偷摸摸、不知所自何来的内核模块无法在系统中容身。但它却也给正经的内核开发人员带去了一个麻烦:开发过程中会不断生成新的驱动镜像文件,开发者不可能将每一个内部版本都拿去申请数字签名,那样不仅太麻烦,而且会大大延长开发周期。

微软当然也考虑到了这一点,它提供了一个可以禁止签名检验的开机启动项。要运用此启动项,用户必须在启动电脑的时候,及时在键盘上按下F8键,在出来的启动菜单中选择倒数第二个启动项:Disable Driver Signature Enforcement.

这看上去很省心,但你如果再了解得深入一点,就会发现它其实很麻烦。

首先开机启动项只能手动选择,系统再次重启的时候,它会忘记上一次所选择的启动项,用户如果不再次及时按下F8按钮的话,就会错过机会,只能谋求下一次重启时的机会。如果开发者需要不断地进行重启测试的话,就必须有一个专人站在边上,作用就是及时地按下F8并在出现的启动菜单中选择倒数第二项。这是很无聊并痛苦的事情,所以大多数开发者不愿采用这种方法。

其次就是在Win8系统上,用户在系统开机时已没有通过F8调出启动菜单的机会。这一点虽然可以避免,但过程却也复杂,这里不展开介绍。

看到一扇关闭的窗户,不必急着沮丧,或许旁边正有一扇为你敞开的大门。微软还提供了一项称为Test Sign的技术,却正可以较好解决内核开发者的这项困扰。只不过它的实现方法比较复杂,虽然微软提供了详细的文档,但不到万不得已,开发者一般不会去详细研究其内容。从步骤上来讲,这个技术分两个实现步骤:

首先,启动Test Signing启动项属性。实现的一个简单方法是在控制台中运行如下命令:

Bcdedit /set testsiging true

此命令的意思是为当前系统启动项打开名为“TestSigning”的属性。如果再运行下面的命令,就能看到这个属性被列出:

Bcdedit /enum {current}

64位驱动签名工具64Signer_第1张图片

这个属性会在下次系统重启时生效。系统会一直记住这个属性,重启系统后也依然有效。

第二是用一个测试证书对你的内核镜像文件(一般即.sys文件)进行签名。用户对此可能有点困惑,稍微介绍一下。原来如果认证机构为内核驱动签名的时候,会颁发一个受信证书,这个证书最终会安装到用户系统中,而对镜像文件所进行的签名操作,就是把证书信息写到文件中。系统通过验证这个证书来确认其受信与否。获取这个证书首先需要银子,其次也需要时间。但如果我自己能够给自己颁发一个临时证书,又怎样呢?那当然又省心又快捷了。微软提供了这样的策略:在Test Signing模式下,测试证书能和其它商业证书一样工作无误。

那么这第二个步骤其实又能细分为两个小步骤:1. 创建测试证书;2.用测试证书为驱动签名。微软提供了相关工具,包含在最新的SDK或DDK中。简单来讲,用户应该使用makecert.exe创建证书,再用signtool.exe进行镜像文件签名。微软所提供的工具不止这两个,但这两个确实是最重要的。遗憾的是这些工具都只能运行在控制台中,用户界面不算友好,参数也很晦涩。这大概是为什么大多数内核开发者都不太使用这些工具的原因?

工具使用方法,请参考微软相关文档。

  • 使用64Signer

64位驱动签名工具64Signer_第2张图片

好了,现在一个崭新的新星出现了。64Signer能帮助你一步到位。它不仅界面清晰明了,并且功能完整智能。开发者只要简单地进行一次拖拽,点最多两个按钮,就可以完成系统设置和文件签名等一系列的工作。深渊隐藏在坚实的桥面下,用户只需开车通过,而无需流连惊骇

工具的操作方法其实已简单明了地列在界面上(红色字体部分),但我还是愿意详细解释一下使用过程:

  1. 运行工具后它能够正确显示当前系统的Test Signing设置。如果此属性已被打开,则“Enable Test Signing Option”是自动钩住的;否则用户需点击一下(第一个点击)。
  2. 然后用户应将驱动文件拖拽到用户界面中来,或者手动输入路径,或者点击Open按钮从而通过文件对话框来选择,都可以(一次拖拽)。
  3. 64位驱动签名工具64Signer_第3张图片最后点击Sign按钮(二次点击)。如果签名成功,用户能看到如右图所示提示成功的对话框。
  • 读者如果看到有失败的情况,请发邮件告诉我。

64位驱动签名工具64Signer_第4张图片

在关闭工具的时候,工具如果检测到你改变了Test Signing启动属性,会有如右图所示的系统重启提示。

整个过程就这么简单,我总结为:一拖两点。

这个工具的贴心之处还没有完全展现出来,如果你看到曾经操作过的历史文件已被整理妥当,以动态列表的形式显示,而你只要点击一下就能展开并选择,贵用户的心情会不会更开心?如下图所示:

64位驱动签名工具64Signer_第5张图片

 补充

在有些启用了Secure Boot的机器上,不能打开TestSigning启动选项。这种情况下,64Signer就不能使用了。下面是一个例子:

C:\windows\system32>bcdedit /set {current} testsigning on
An error has occurred setting the element data.
The value is protected by Secure Boot policy and cannot be modified or deleted.

9,159 total views, 19 views today

此条目由 张佩发表在 工具&下载分类目录,并贴了 64Signer、 CryptAPI、 签名、 驱动标签。将 固定链接加入收藏夹。

你可能感兴趣的:(64位驱动签名工具64Signer)