gpt4 book ai didi

driver - 解决驱动程序开发 : Signed driver not recognized by Windows CodeIntegrity 3004

转载 作者:行者123 更新时间:2023-12-01 12:44:35 28 4
gpt4 key购买 nike

简短描述:我有一个通过 SignTool 验证的签名驱动程序,但 Windows 拒绝加载它并出现错误:CodeIntegrity 3004 - 在系统上找不到文件哈希。我该如何解决这个问题?

详细说明:我正在使用 Cypress Suite USB 3.4.7 开发套件为我们的仪器创建一个 USB 驱动程序以在 Windows 7 64 位下运行。我已经用正确的 ID 配置了 INF,只要我绕过驱动程序签名强制,未签名的驱动程序就可以正常工作。我想创建一个签名的驱动程序,并一直按照 http://www.davidegrayson.com/signing/ 中描述的步骤进行操作

我使用带有/os:7_X64 标志的 Inf2Cat v3.2 创建了一个目录文件。我正在使用 SignTool/sha1 进行签名并可以验证 .cat 和 cyusb.sys 文件上的签名。文件资源管理器显示两个文件都有数字签名,高级选项卡显示“此数字签名正常”。

我插入我的 USB 设备,它在设备管理器中显示为未知设备。我选择“更新驱动程序”,然后看到一个屏幕,显示该驱动程序已由我签名。我继续,几分钟后安装失败,说明驱动程序未正确签名。事件查看器显示 CodeIntegrity 错误 3004,“Windows 无法验证 CYUSB.sys 的图像完整性,因为在系统上找不到文件哈希”

对于这个找不到的“文件哈希”,我一直没能找到解释。非常感谢任何有关如何进一步排除故障和解决此问题的帮助!

最佳答案

事件日志中的错误消息具有误导性。丢失的“文件哈希”实际上是一个 Microsoft 根级证书。我的驱动程序由 GlobalSign ObjectSign CA 签名,这是一个有效的签名,但我没有指定将 GlobalSign 链接到 Microsoft 根证书的交叉证书。

为了清楚地检测到原始错误,我需要使用 SignTool Verify 和/kp 开关来测试此 USB 驱动程序所需的内核级权限。使用该开关时,我收到一条错误消息,清楚地指出它找不到 Microsoft 根证书。

我在这里下载了 GlobalSign 的交叉证书:http://msdn.microsoft.com/en-us/library/windows/hardware/dn170454(v=vs.85).aspx

将/ac 开关与 SignTool Sign 结合使用,我能够使用向下延伸至 Microsoft 根证书的链对 .cat 文件进行签名。此驱动程序成功安装在 Win 7 64 位系统上。胜利!

关于driver - 解决驱动程序开发 : Signed driver not recognized by Windows CodeIntegrity 3004,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21530675/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com