驱动程序开发疑难解答:Windows CodeIntegrity 3004 无法识别签名的驱动程序

2024-03-09

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

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

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

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

我一直无法找到这个无法找到的“文件哈希”的解释。任何有关如何进一步排除故障并解决此问题的帮助将不胜感激!


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

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

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

使用 /ac 开关和 SignTool Sign 我能够使用一直到 Microsoft 根证书的链对 .cat 文件进行签名。该驱动程序已成功安装在Win 7 64位系统上。胜利!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

驱动程序开发疑难解答:Windows CodeIntegrity 3004 无法识别签名的驱动程序 的相关文章

  • 在anaconda上安装cx_freeze时出现包冲突

    我正在尝试使用 anaconda 提示符安装 cx freeze 按照他们网站上的内容 我使用了 conda install c pyzo cx freeze 我收到此错误 UnsatisfiableError The following
  • 指纹 u.a.u 4500 与 ubuntu 18.04

    我想为你的 u 4500 安装驱动程序 但它只能使用旧内核版本 2 6 到 3 2 进行编译 你能帮我在使用最新内核版本的 ubuntu 上安装驱动程序吗 指纹示例应用程序无法识别设备 我不确定你遇到了什么问题 但我可以在 Ubuntu 1
  • 如何编写Linux驱动模块调用/使用另一个驱动模块?

    我正在开发一个 Linux 驱动程序可加载模块 我必须在我的驱动程序中使用另一个设备 某种驱动程序堆叠在另一个驱动程序上 如何在我的驱动程序中调用 使用其他驱动程序 我认为它们都在内核中 所以可能有一种方法可以直接使用另一个驱动程序 您将需
  • 在 NSIS 脚本中安装驱动程序

    我正在尝试创建一个安装 inf 文件的 NSIS 安装程序 inf 文件从安装程序中提取到正确的位置 然后我使用 nsExec ExecToLog SYSDIR PnPutil exe a INSTDIR driver xser inf 然
  • 添加 MIN_VALUE 如何将整数与无符号整数进行比较?

    在Java中int类型是有符号的 但是它有a method https docs oracle com javase 8 docs api java lang Integer html compareUnsigned int int 比较两
  • 如何处理“有符号/无符号不匹配”警告 (C4018)?

    我使用大量编写的计算代码c questions tagged c 2b 2b考虑到高性能和低内存开销 它使用STL容器 主要是std vector 很多 并且几乎在每个函数中迭代该容器 迭代代码如下所示 for int i 0 i lt t
  • 使用 ruby​​ 将存储为有符号的无符号整数转换回原始值

    C 程序将它认为是 64 位无符号整数放入 Postgres 数据库中类型为 int8 的列中 对于 Postgres int8 始终是 signed int8 没有 unsigned int8 这样的东西 因此 我的 Ruby 程序将从
  • 运行时错误(-1:0):无法使用 InnoSetup 导入 ISSkin.dll

    我的程序在安装了 ISSkin 的计算机上安装得很好 然后我尝试在另一台未安装 ISSkin 的计算机上安装我的程序 安装时收到此消息 运行时错误 1 0 无法导入 dll c Folder00 ISSkin dll 我在网上搜索过 但到目
  • Asus MeMO Pad 没有驱动程序可以使用 eclipse 进行应用程序调试

    我有同样的问题 如下所示SO post https stackoverflow com questions 15029581 asus memo pad debug for android apps 我得到了一个新的 Asus Memo P
  • ADB 驱动程序和 Windows 8.1

    我浪费了很多时间试图在 Windows 8 1 中为我的平板电脑成功安装 ADB 驱动程序 所以在这里我将发布我所做的 以防有人遇到同样的问题 UPDATE 发布图片 英文版 https ivanrf com en adb driver a
  • Android Studio 签名的 APK 未安装

    我在 Android Studio 中 在 构建 gt 生成签名的 APK 下签署 APK 并使用向导 一切似乎都正常 并生成了一个 apk 文件 当我将此文件复制到我的设备 Nexus 7 或 Moto X 时 它不会安装 我收到 安装失
  • python 将ascii字符转换为有符号8位整数

    这感觉应该很简单 但我一直找不到答案 在 python 脚本中 我从 USB 设备读取数据 USB 鼠标的 x 和 y 移动 它以单个 ASCII 字符形式到达 我可以使用 ord 轻松转换为无符号整数 0 255 但是 我希望它作为有符号
  • 如何在windows下制作Qt mysql驱动?

    我已经在linux中多次构建了qsqlmysql so 我完全熟悉这个过程 但现在在愚蠢的窗口中 无论我做什么 我都无法构建它 我使用的是Qt5 12 1 最新 和Microsoft VS enterprise 2017编译器 我已经下载了
  • 模拟 Fn+F11 按键

    Can you tell me how I can simulate key presses Fn F11 on a laptop Do I have to write a driver or something like that 平台是
  • 我是否需要在 Linux 3.12 驱动程序中“启用”PCIe 内存区域?

    我有从 PCIe 驱动程序的probe 函数调用的代码 大致基于此post https stackoverflow com a 5195061 32836 EDIT 基于安德烈亚斯 邦贝 https stackoverflow com a
  • 在 Windows Server 2019 Core 中强制安装不兼容的 .inf 驱动程序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的第六代 NUC 上安装 Server 2019 Core 尽管安装进展顺利 但当它在没有任何网络连接的情况下启动时 我想起
  • 为应用程序创建自定义 odbc 驱动程序

    好的 我有一个简单的数据库引擎 它是用 vb6 编写的专有产品 用于我的一个应用程序 我想为它创建一个 ODBC 驱动程序 这样我就可以将我的一些其他应用程序 需要数据库 与我的数据库引擎而不是 microsoft sql 他们当前正在使用
  • CUDA程序导致nvidia驱动程序崩溃

    当我超过大约 500 次试验和 256 个完整块时 我的 monte carlo pi 计算 CUDA 程序导致我的 nvidia 驱动程序崩溃 这似乎发生在 monteCarlo 内核函数中 任何帮助都会受到赞赏 include
  • 从“(signed) -1”到“unsigned long”的转换是否标准化? [复制]

    这个问题在这里已经有答案了 In 这个答案 https stackoverflow com a 51234964 65863 你可以找到这条评论 https stackoverflow com questions 40608111 why
  • 在内核模块中执行shell命令

    是否可以在内核模块中执行shell命令 我知道我们可以在用户空间 C 代码中使用system子程序 我正在调试一个存在内存泄漏问题的内核模块 在无限循环中执行 insmod 和 rmmod module ko 后 8G RAM 的系统在几分

随机推荐