在 Windows 7 x64 中使用未签名的驱动程序

在 Windows 7 x64 中使用未签名的驱动程序

我正在尝试使用RBC9 SpaceNavigator 测试 x64 版本我的 SpaceNavigator 3d 操纵杆的驱动程序,以便它可以在 Quake 等游戏中用作普通操纵杆。

不幸的是,我收到错误“此版本的 Windows需要所有驱动程序都具有有效的数字签名”,而在设备管理器的“设备状态”中,我收到“Windows 无法验证此设备所需驱动程序的数字签名。最近的硬件或软件更改可能安装了签名不正确或损坏的文件,或者可能是来自未知来源的恶意软件。(代码 52)”。

有办法解决这个问题吗?

答案1

论坛主题有多种解决方案,但唯一被至少一个人确认有效并且得到赞成票的解决方案是:

以管理员身份打开命令提示符并输入

bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON

查看安全风险警告。

如果它由于某种原因不起作用,您可以使用 bcedit 删除 loadoptions 并关闭 testsigning。

bcdedit /deletevalue loadoptions
bcdedit -set TESTSIGNING OFF

如果这因任何原因导致某些损坏,很抱歉,祝你好运。

编辑:其他来源似乎也提供了此解决方案,例如(尽管适用于 Windows Vista)和

答案2

内核模式驱动程序的安全级别大致有三个:

  • 测试签名/自签名
  • 未签名

只要证书有效等,签名的驱动程序就会正常安装。

测试签名驱动程序将需要这些bcdedit命令,因为 Windows 通常不接受自签名驱动程序。内核驱动程序开发人员通常会在测试模式下运行他们的 Windows 计算机。他们的想法是“自签名”他们的驱动程序。测试模式允许加载他们的自签名驱动程序。测试完成后,驱动程序仍必须签名。

未经签名的驱动程序不会被加载。即使在测试模式下也不会,因为它们至少需要经过测试签名!

因此,这时需要在启动时按 F8 键并选择Disable Driver Signature Enforcement。这是最后的选择。

还请注意,F8 设置仅适用于该 Windows 会话,重启后不会保留。有点像 Windows 的“安全模式”选项。

从这里你能去哪里?

您要么接受每次都必须按 F8,要么弄清楚如何对驱动程序进行自我签名,以便至少可以在测试模式下加载它。

进一步阅读:

在开发和测试期间安装未签名的驱动程序

测试签名

答案3

避免“Windows 无法验证数字签名”错误消息的最佳方法是禁用当前 Windows 会话的数字签名强制执行。以下是每个 Windows 版本的详细说明:http://freewisdoms.com/windows-cannot-verify-the-digital-signature-code-52-driver-fix/

请注意,此解决方案不是永久性的,因此您必须在每次启动 Windows 时执行此操作。永久性解决方案包括 CMD 命令(如上所述),有时可能有效,但大多数时候无效。微软正在努力使此签名检查很难被禁用,因为他们从驱动程序供应商那里赚了很多钱……

答案4

偶然发现了这个帖子。在阅读了另一个帖子(在 Overflow 上)后,似乎有关于此问题的确凿文献。请参阅- https://stackoverflow.com/questions/52778961/windows-10-error-code-52-in-device-manager-with-correct-signature-in-cross-sign

“注意:从 Windows 10 版本 1607 开始,Windows 将不会加载任何未经 Dev Portal 签名的新内核模式驱动程序。

[...]

如果满足以下任一条件,仍允许使用交叉签名的驱动程序:

该电脑从 Windows 的早期版本升级到 Windows 10 版本 1607。

BIOS 中的安全启动已关闭。

Drivers 已使用 2015 年 7 月 29 日之前颁发的终端实体证书进行签名,该证书链接到受支持的交叉签名 CA。”

相关内容