内核驱动签名sys文件签名指南

本文来自:维瑞-技术中心-内核驱动签名指南 http://www.willrey.com/support/digital_signatures_for_kernel.html

sys内核驱动签名指南

Vista Non-PnP Kernel-Mode Boot Driver签名指南

Boot Start Driver 是指在操作系统启动时,就加载的驱动。由于系统刚刚启动,所以不会像加载其他PnP 类型驱动那样,用签名的Catalog文件判断驱动的合法性。有关这方面的详细说明请参考微软文档 “Digital Signatures for Kernel Modules on Systems Running WindowsVista”(64bitDriverSigning.doc)。

注意:以下操作环境是WDK 6000版本的Vista X64 Free Build Environment。

 

  • 要注意的是对64位Windows机驱动,尽量使用VeriSign代码签名证书,从 维瑞 获得两个证书文件 myprivate.pvk和 myspc.spc。

  • 使用 pvk2pfx.exe 将这两个文件转换成 personal information exchange (.pfx) 文件

pvk2pfx -pvk myprivate.pvk -pi pvkpassword -spc myspc.spc -pfx mypfx.pfx -f

  • 将pfx文件导入当前用户个人证书库,这步非常关键,很多签名不成功或签名的root不对的原因都和这步有关。

  • 开始-〉运行-〉mmc,启动控制台程序

  • 选择菜单“文件-〉添加/删除管理单元”

  • 单击“添加”按钮

  • 在“可用的独立管理单元”列表中选择“证书”,然后单击“添加”按钮

  • 选择“我得用户帐户”,然后单击“完成”按钮

  • 单击“关闭”按钮
  • 单击“确定”按钮

完成以上步骤后,在控制台软件的左侧显示证书树形列表。见下图:

选择“个人”目录,右键单击,选择“所有任务-〉导入”

 

  • 根据“证书导入向导”的提示,生成的.pfx文件导入当前个人目录下。

  • 导入成功后,可以看到购买的证书信息。

  • 签名命令

SignTool sign /v /ac MSCV-VSClass3.cer /s my /t   http://timestamp.verisign.com/scripts/timstamp.dll  mydrv.sys

  • MSCV-VSClass3.cer是 Verisign公司和微软的交叉根证书,可从微软网站上下载,或从维瑞下载

  • /s my 就是我们的个人证书库

  • /t 加签名的时间戳

  • Mydrv.sys 是要嵌入签名的驱动文件

注意:做这步时,一定要保证网络通畅。否则访问时间戳网址会失败,时间戳服务对代码签名很重要。

执行后的输出结果如下图所示,这只代表签名已经成功嵌入。

内核签名签名成功嵌入提示

  • 验证签名

  • 内核驱动签名完成后,执行下面的步骤验证签名是否正确

    SignTool verify /v /kp mydrv.sys

    如果出现如下信息,说明嵌入签名成功

检查内核驱动SYS文件签名是否成功

posted @ 2013-05-10 10:26  wuxingit  阅读(1404)  评论(0编辑  收藏  举报