驱动签名代码怎么用

时间:2025-03-28 03:58:18 励志网名

一、准备工作

获取签名证书

需要获取适用于 Windows 的代码签名证书,推荐使用受信任的 CA(如 Comodo)颁发的 EV 证书。

安装证书

将证书导入到本地计算机证书存储中,通常存储路径为 `cert:\CurrentUser\My`(个人存储)或 `cert:\LocalMachine\My`(受信任的根证书颁发机构)。

二、签名驱动程序

使用 SignTool 命令行工具

打开命令提示符(管理员权限),使用以下命令对驱动程序进行签名:

```bash

signtool sign /v /ac "路径\到\证书.cer" /s MY /n "公司名称" /t http://timestamp.comodoca.com

```

`/v`:启用详细输出

`/ac`:指定交叉签名证书路径(如 `AddTrust_External_CA_Root.cer`)

`/s MY`:选择证书存储(个人存储)

`/n "公司名称"`:填写企业名称

`/t http://timestamp.comodoca.com`:关联时间戳服务(可选)

示例

```bash

signtool sign /v /ac "D:\AddTrust_External_CA_Root.cer" /s MY /n "MyCompany" /t http://timestamp.comodoca.com "D:\drivers\example.sys"

```

双签名驱动程序

若需同时包含 SHA-1 和 SHA-256 签名(兼容旧系统),需分两行执行:

```bash

signtool sign /v /ac "路径\到\证书.cer" /s MY /n "公司名称" /t http://timestamp.comodoca.com "D:\drivers\example.sys"

signtool sign /v /ac "路径\到\证书.cer" /s MY /n "公司名称" /fd sha256 /tr http://timestamp.comodoca.com "D:\drivers\example.sys"

```

签名后需满足 Windows 5 级证书链要求。

三、测试签名

使用以下命令验证签名是否成功:

```bash

signtool verify /pa /v "路径\到\驱动程序.sys"

```

`/pa`:验证签名属性

`/v`:启用详细输出

若输出显示签名有效,则签名成功。

四、部署注意事项

系统设置调整

测试模式:

通过 `bcdedit` 开启测试签名(`bcdedit /set testsigning ON`),可安装未签名的驱动程序。

强制签名关闭:若需在非签名驱动出现问题时继续安装,可临时关闭驱动签名强制(`bcdedit /set nointegritychecks on`),重启后需恢复(`bcdedit /set nointegritychecks off`)。

用户权限

签名操作需以管理员身份运行。

五、常见问题

签名失败:

检查证书有效性、权限或时间戳服务是否正常。

驱动安装失败:优先选择“警告”选项,避免直接禁止安装未签名驱动。

通过以上步骤,可规范驱动程序签名流程,确保兼容性和安全性。