Win64 驱动签名
以下内容原文来自网友ndis_passthru。略作修改(本人使用过程需要)
网友http://my.csdn.net/changpei,他写的关于驱动的文章也是很好
Vista 之后的 64位os里 ,内核程序都需要签名才能加载。
要使x64 os加载自己的驱动,有3种方式 :
1)、开机时–> F8–> “Disbale Driver Signature Enforcement”。
2)、Test-signing 。ms为 程序开发者 提供的测试内核代码的方式。(用自签名的证书来签名内核代码)
3)、向ms买个证书。
下面记录下,我使用 Test-signing 的过程。
我的操作过程皆来自 MSDN : Kernel-Mode Code Signing Walkthrough (http://msdn.microsoft.com/en-us/library/windows/hardware/gg487328.aspx)里面下载的 KMCS_Walkthrough.doc 有较详细操作步骤。这个文档非常非常非常重要,如果在使用中出现错误,一定要在这个文档中仔细看看命令的使用步骤等
PS : 记得执行下面的操作时 ,是使用 管理员 身份登录的 。以WDK7自带的例子passthru为例。(复制并改名为C:_passthru_wdk7),第一次学习建议编译环境一定要选择对应的系统,例如我使用的是window 7系统 vs 2008 wdk 7-(GRMWDK_EN_7600_1.ISO)
一、安装好 WDK。(我这里使用 WDK7)
二、打开命令提示符。 开始–> 程序–>Windows Driver Kits –> WDK 7600.16385.1–>Build Environments –> Windows 7 –> x64 Checked Build Environment 。(下面称此 命令提示符界面 为 cmd_wdk7 )
三、编译 passthru 。复制C:\WinDDK\7600.16385.1\src\network\ndis\文件夹下的passthru到C:\中
cmd_wdk7 进入目录 C:\passthru\driver\
build -czg
四、创建 (自签名测试)证书(doc P.9)。cmd_wdk7 进入目录 C:\passthru\driver\objchk_wlh_amd64\amd64\ ,输入命令
“makecert -r -pe -ss zcPrivateCertStore -n CN=zcContoso.com(Test) zcContosoTest.cer”
(这里可以看到 zcContosoTest.cer 生成了)
然后查看 刚创建的证书,doc P.9 的 To use the MMC Certificates snap-in to view a certificate
五、(Using Inf2Cat to Create a Catalog File ==> doc P.11)
1)、将 C:_passthru_wdk7\driver\ 中的 netsf.inf 和 netsf_m.inf 复制到 C:\passthru\driver\objchk_win7_amd64\amd64\ 中 。
2)、修改 copy过来的 inf 。
A)、两个 inf 中分别都要添加3行使之变为 :
“
……
[Version]
Signature = “$Windows NT$”
Class = NetService
ClassGUID = {4D36E974-E325-11CE-BFC1-08002BE10318}
Provider = %Msft%
DriverVer =10/01/2002,6.0.5019.0
CatalogFile.Ntx86 = zcPassthru_x86.cat
CatalogFile.NtIA64 = zcPassthru_ia64.cat
CatalogFile.NtAMD64 = zcPassthru_AMD64.cat
[Manufacturer]
%Msft% = MSFT,NTx86,NTia64,NTamd64
……
”
B)、两个 inf 中的
DriverVer =10/01/2002,6.0.5019.0 都改为 DriverVer =10/01/2011,6.0.5019.0
3)、cmd_wdk7 中执行命令 :
“Inf2cat.exe /driver:C:\passthru\driver\objchk_win7_amd64\amd64\ /os:7_x64”
(这里可以看到 zcPassthru_amd64.cat 生成了)
六、Test-Sign the Catalog File ==> doc P.14
即 对这里的 zcPassthru_amd64.cat 进行签名。
“
Signtool sign /a /v /s zcPrivateCertStore /n zcContoso.com(Test) /t http://timestamp.verisign.com/scripts/timestamp.dll zcPassthru_amd64.cat
”
七、Install the Test Certificate in the Trusted Root Certification Authorities Certificate Store ==> doc P.15
将我们的证书安装到 受信任的根证书颁发机构 。
“certmgr.exe /add zcContosoTest.cer /s /r localMachine root”
然后可以查看 doc P.16
八、Test-Sign a Driver Image File by Using an Embedded Signature ==> doc P.18
对驱动程序进行签名。https://msdn.microsoft.com/zh-cn/library/8s9b9yaz.aspx
“
Signtool sign /v /s zcPrivateCertStore /n zcContoso.com(Test) /t http://timestamp.verisign.com/scripts/timestamp.dll passthru.sys
” ==> doc P.19
可以对签名进行确认查看 doc P.20
ps : 上面命令中有时容易打错字母,需要注意,打错个别字母时查起来很费劲…
// ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==>
上面将该生成的都生成了(zcContosoTest.cer 、zcpassthru_amd64.cat),该签名的也签名了(zcpassthru_amd64.cat、passthru.sys) 。
那么如何将签好名的东西装到测试用的机器上去呢?如下操作:
ps : 测试机上新建文件夹 C:\_passthru_wdk7_cert ,这里的目标机是 Win2008_x64
一、To install the test certificates ==> doc P.22
安装 测试证书。
1)、将 zcContosoTest.cer 复制到 C:_passthru_wdk7_cert 中 ;一般目标机中 不会有 certmgr.exe ,则在 WDK7 的安装目录(C:\WinDDK\7600.16385\bin\amd64)找到 certmgr.exe ,也复制到 测试机 C:_passthru_wdk7_cert 中 。
2)、管理员权限 打开 cmd ,进入目录 C:_passthru_wdk7_cert 。(这里要确保是管理员身份的话,就直接找到“C:\WINDOWS\system32\cmd.exe”,然后右击“以管理员身份运行(A)”)
3)、安装 zcContosoTest.cer 到本机的 Trusted Root Certification Authorities 。命令 :
“certmgr.exe /add zcContosoTest.cer /s /r localMachine root”
4)、安装 zcContosoTest.cer 到本机的 Trusted Publishers 。命令 :
“certmgr.exe /add zcContosoTest.cer /s /r localMachine trustedpublisher”
ps : 注意上面两步的作用地方是不一样的。(可用 certmgr.msc 查看)
5)、管理员cmd –> “bcdedit.exe /set TESTSIGNING ON” ==> doc P.24 –> 机器重启。
6)、正常方式安装 签名过的 passthru.sys (安装时的警告还是会出现的…)
Win64 驱动签名相关推荐
- Win64 驱动内核编程-2.基本框架(安装.通讯.HelloWorld)
驱动安装,通讯,Hello World 开发驱动的简单流程是这样,开发驱动安装程序,开发驱动程序,然后安装程序(或者其他程序)通过通讯给驱动传命令,驱动接到之后进行解析并且执行,然后把执行结果返回. ...
- EV代码签名证书,支持Windows 10预览版和正式版驱动签名
DigiCert EV代码签名证书具有普通内核代码签名证书的所有功能,但不同的是采用更加严格国际标准扩展验证(EV验证),并且有严格的证书私钥保护机制--必须采用 USB Key来保护签名证书的私钥, ...
- Windows 内核驱动签名策略
Windows的驱动签名策略起始于Win7 64位操作系统,从Win7 64位一直到 Win10 1511版本,驱动程序必须要有SHA1签名,且证书必须使用微软签发的证书交叉签名. 后来微软推行了SH ...
- zipsys驱动签名工具_全球首发 300系列主板USB WIN7 64位驱动 SMXDIY
本版为改版驱动,仅供SMXDIY会员学习测试,禁止传播.众所周知,H310/B360/H370/Z390是没USB的WIN7驱动的.网上也找不到相关的资料,大家普遍默认没驱动,但这已经成为历史.我们这 ...
- win7、win10关闭驱动签名,进入驱动测试模式,以及常见初级问题的解决
win7关闭驱动签名,进入驱动测试模式 win7.win10关闭驱动签名.进入驱动测试模式 方式一: 方式二:批处理文件实现:管理员权限打开win7-win10驱动测试模式 方式三: DebugVie ...
- Windows 10驱动签名_win 10驱动数字签名_驱动签名注意事项
目前对于驱动开发者而言往往面对着一个问题--windows 10驱动数字签名问题,根据Symantec VeriSign代码签名中国区代理商 深圳易维信的客服所介绍,目前颁发的Symantec Cod ...
- 放弃使用禁用驱动强制签名了,建议申请驱动签名证书
驱动程序软件的数字证书和普通的其他软件有很大的区别.曾经,驱动程序也可以用 EV 代码签名证书进行数字签名,但随着微软的策略调整,想要给驱动获取数字签名,已经不仅仅是有 EV 代码签名证书就可以的了. ...
- 证书系统64驱动签名工具64Signer
首先声明,我是一个菜鸟.一下文章中涌现技术误导情况盖不负责 [作者:张佩][工具下载:http://www.yiiyee.cn/Blog/64signer/] 背景分析 微软对于自Vista开始的64 ...
- 代码签名、驱动签名的常见问题解答
什么是代码签名证书? 代码签名证书(Code Signing Certificates)是为软件开发者提供代码软件数字签名的认证服务. 代码签名证书通过对代码的数字签名,可标识软件来源以及软件开发者的 ...
- 【Linux 】内核签名(签名内核模块)、linux 驱动签名、安装特定版本的 kernel-devel
Linux 内核签名 Linux 内核签名(签名内核模块).linux 驱动签名_西京刀客-CSDN博客_linux内核签名 安装特定版本的 kernel-devel 两种方法. 一.yum 安装 查 ...
最新文章
- 科普:浅谈 Hellinger Distance
- 算法--------------有效的数独
- 彻底理解 Redis 的持久化和主从复制
- windows下用elasticdump导入json数据到Elasticsearch中
- HTTP协议之响应头Date与Age
- 2022考研 【理工专场讲座(新政策分析、专业分析、复习建议)】
- ubuntu19.10改成aliyun源
- swift开发:试玩 Apple 网站的 playground
- 沈阳初级计算机职称,沈阳职称申报(附网址)
- 网络地址转换协议NAT详解
- Office LTSC 2021 for Mac
- 磊科路由器信号按键_磊科路由器怎么设置中继? | 192路由网
- 如何解决手机retina显示屏下的1px太粗问题
- 中间视频上下图片的视频效果怎么制作
- HTTP错误代码 404 503 500
- charles 抓 app 请求,设置端口,手动设置手机代理IP 、端口,增加监控的网址,并在手机安装证书防止乱码
- 课余或者业余学习python,可以嘛?
- 老男孩51CTO博客博文列表整理版20170620更新
- 21届毫无工作经验毕业生竟然拿到了阿里的意向书?在此分享一下我的阿里3面+HR面面经
- Python视觉摄像头检测有趣项目之机器学习和概率论重点概念分析重要(三)(重点)