2024 Windows驱动签名

2024 Windows驱动签名

提示:本篇文章旨在记录个人学习笔记,如有错误欢迎各位大佬指出。未经许可,不可擅自转载!

文章目录

概要驱动签名流程1.准备2.创建CAB文件3.对CAB文件进行签名4.登录微软合作伙伴中心提交CAB文件5.下载并验证驱动

总结参考

概要

我们都知道驱动一般有三个文件(sys\inf\cat),但是呢,我们自己写的驱动一般是没办法运行在微软的系统上的,所以这时候就需要拿到微软的驱动签名,系统才认为你这驱动是安全的,本文就是介绍如何获取微软的签名。

驱动签名流程

1.准备

驱动要签名,首先驱动要符合微软签名的驱动程序的要求,保证你的驱动是安全的;其次需要微软EV证书以及WDK工具包。这里提供测试驱动:signaturetest驱动程序路径:.\signaturetest\signturetest\x64\Release

2.创建CAB文件

典型的 CAB 文件提交必须包含:

驱动程序本身,例如 signaturetest.sys驱动程序 INF 文件,仪表板使用它来简化签名过程。符号文件,用于调试信息。 例如,Echo.pdb。 Microsoft 自动崩溃分析工具需要使用 .pdb 文件。目录 .CAT 文件是必需的,仅用于公司验证。 Microsoft 会重新生成目录文件,并替换已提交的任何目录文件。

1.以管理员身份启动CMD,执行命令“MakeCab /?”验证工具是否存在,例如: 2.创建一个以.ddf后缀的文件,以我提供的样例写法如下:

;*** signaturetest.ddf example

;

.OPTION EXPLICIT ; Generate errors

.Set CabinetFileCountThreshold=0

.Set FolderFileCountThreshold=0

.Set FolderSizeThreshold=0

.Set MaxCabinetSize=0

.Set MaxDiskFileCount=0

.Set MaxDiskSize=0

.Set CompressionType=MSZIP

.Set Cabinet=on

.Set Compress=on

;Specify file name for new cab file

.Set CabinetNameTemplate= signaturetest.cab

; Specify the subdirectory for the files.

; Your cab file should not have files at the root level,

; and each driver package must be in a separate subfolder.

.Set DestinationDir= signaturetest

;Specify files to be included in cab file

D:\Project\signaturetest.inf

D:\Project\signaturetest.sys

当存在多个驱动需要签名时,样例如下:

;*** Submission.ddf multiple driver example

;

.OPTION EXPLICIT ; Generate errors

.Set CabinetFileCountThreshold=0

.Set FolderFileCountThreshold=0

.Set FolderSizeThreshold=0

.Set MaxCabinetSize=0

.Set MaxDiskFileCount=0

.Set MaxDiskSize=0

.Set CompressionType=MSZIP

.Set Cabinet=on

.Set Compress=on

;Specify file name for new cab file

.Set CabinetNameTemplate=Echo.cab

;Specify files to be included in cab file

; First Driver

.Set DestinationDir=DriverPackage1

C:\DriverFiles\DriverPackage1\Driver1.sys

C:\DriverFiles\DriverPackage1\Driver1.inf

; Second driver

.Set DestinationDir=DriverPackage2

C:\DriverFiles\DriverPackage2\Driver2.sys

C:\DriverFiles\DriverPackage2\Driver2.inf

3.输入以下命令以创建 CAB 文件

D:\Project> MakeCab /f "D:\Project\signaturetest.ddf

4.MakeCab 的输出应显示创建的 CAB 文件中的文件数。 在本例中,应该有两个文件。

D:\Project> MakeCab /f "D:\Project\signaturetest.ddf

Cabinet Maker - Lossless Data Compression Tool

17,682 bytes in 2 files

Total files: 2

Bytes before: 17,682

Bytes after: 7,374

After/Before: 41.70% compression

Time: 0.20 seconds ( 0 hr 0 min 0.20 sec)

Throughput: 86.77 Kb/second

5.在 Disk1 子目录中找到 CAB 文件。 可以在文件资源管理器中选择 CAB 文件,以验证它是否包含所需的文件。

3.对CAB文件进行签名

由于需要用到公司的EV证书进行CAB文件签名,这里就不向大家展示了。以下命令使用 SHA256 证书/摘要算法/时间戳对 CAB 文件进行签名:

D:\Project> SignTool sign /f certificateName.pfx /p password /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "D:\Project\signaturetest\Disk1\signaturetest.cab"

4.登录微软合作伙伴中心提交CAB文件

1.转到微软合作伙伴中心硬件仪表板并使用凭据登录。

2.选择“提交新硬件”。 3.在“包和签名属性”部分,输入驱动程序提交的产品名称。 此名称可用于搜索和整理驱动程序提交。

4.取消选中这两个测试签名选项。

5.对于“请求的签名”,选择希望包含在驱动程序包中的签名。 6.向下浏览页面,然后选择“提交”。

7.签名过程完成后,请从硬件仪表板下载已签名的驱动程序。 8.如果需要微软推送,则要创建一个“New shipping label”的流程进行推送。

5.下载并验证驱动

完成以下步骤以确保驱动程序已正确签名。

下载提交文件后,解压缩驱动程序文件。以管理员身份打开命令提示符窗口。输入以下命令来验证驱动程序是否已按预期签名。D:\Project> SignTool verify signaturetest.Sys若要列出其他信息,并让 SignTool 验证包含多个签名的文件中的所有签名,请输入以下命令:

D:\Project> SignTool verify /pa /ph /v /d signaturetest.Sys

要确认驱动程序的 EKU,请完成以下步骤。

打开 Windows 资源管理器,找到二进制文件。 选择并按住(或右键单击)该文件并选择“属性”。在“数字签名”选项卡上,选择签名列表中列出的项目。选择“详细信息”,然后选择“查看证书”。在“详细信息”选项卡上,选择“增强型密钥用法”。

总结

以上就是本次的驱动签名的教程,MSDN上记录的也很详细,有是推荐去微软原博文学习。对了,微软宣布自 2023 年 3 月 1 日起,Windows Update 不再发布针对零售受众的验证签名驱动程序。以前可以单个单个的驱动提交给微软(非cab文件),现在不行了,系统在升级,驱动签名也在变化,还有很长的道路要走,再接再厉,慢慢成长!

参考

【1】对Windows驱动程序进行签名 【2】SignTool的使用

相关推荐

《万事俱备,只欠东风》出处与译文翻译,成语故事《万事俱备,只欠东风》意思解读 365天免费观看完整版电影

《万事俱备,只欠东风》出处与译文翻译,成语故事《万事俱备,只欠东风》意思解读

WiFi连接方式选哪个? 365体育旗下

WiFi连接方式选哪个?

威士忌从入门到卖房(四):手把手教你酿威士忌 365天免费观看完整版电影

威士忌从入门到卖房(四):手把手教你酿威士忌