我花了一整夜的时间研究这个没有解决方案。
我正在尝试验证驱动器文件夹(C:\ Windows \ System32 \ drivers * .sys)中文件的数字签名选择您想要的任何内容。我知道代码是正确的,因为如果你将文件从该文件夹移动到C:\测试工作。
WinVerifyTrust
给出错误80092003
http://pastebin.com/nLR7rvZe
CryptQueryObject
给出错误80092009
http://pastebin.com/45Ra6eL4
这是什么交易?
答案 0 :(得分:6)
0x80092003 = CRYPT_E_FILE_ERROR =读取或写入文件时发生错误。
0x80092009 = CRYPT_E_NO_MATCH =尝试查找对象时不匹配。
我猜你是在64位计算机上运行而WOW64文件系统重定向是将你重定向到syswow64 \ drivers,这是空的。您可以使用Wow64DisableWow64FsRedirection()禁用重定向。
答案 1 :(得分:3)
如果右键单击并查看文件属性,您是否可以看到数字签名?您的文件很可能是目录的一部分,您需要使用目录API从证书DB中提取证书并进行验证。