1

我整晚都在研究这个,但没有解决方案。

我正在尝试验证驱动器文件夹 (C:\Windows\System32\drivers*.sys) 中文件的数字签名,选择你想要的任何一个。我知道代码是正确的,因为如果您将文件从该文件夹移动到 C:\,则测试有效。

WinVerifyTrust给出错误 80092003 http://pastebin.com/nLR7rvZe

CryptQueryObject给出错误 80092009 http://pastebin.com/45Ra6eL4

这是怎么回事?

4

2 回答 2

6

0x80092003 = CRYPT_E_FILE_ERROR = 读取或写入文件时出错。

0x80092009 = CRYPT_E_NO_MATCH = 尝试查找对象时不匹配。

我猜你在 64 位机器上运行,WOW64 文件系统重定向将你重定向到 syswow64\drivers,它是空的。您可以使用Wow64DisableWow64FsRedirection()禁用重定向。

于 2012-02-18T16:31:30.303 回答
3

如果您右键单击并查看文件的属性,您能看到数字签名吗?您的文件很可能是目录的一部分,您需要使用目录 API 从证书数据库中提取证书并进行验证。

于 2012-09-13T15:00:17.717 回答