2012-02-18 141 views
1

我花了整晚的时间研究这个问题,但没有解决方案。验证system32/drivers文件夹中的数字签名

我试图验证驱动器文件夹(C:\ Windows \ System32 \ drivers * .sys)中的文件的数字签名选择任何你想要的。我知道代码是正确的,因为如果您将文件从该文件夹移动到C:\,测试就可以正常工作。

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

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

这是怎么回事?

回答

5

0x80092003 = CRYPT_E_FILE_ERROR =读取或写入文件时发生错误。

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

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

+0

这看起来似乎解决了这个问题 - 尽管我遇到了更多的困难。仍然在研究这个问题,但是有些文件会失败,但会成功。 – SNyamathi 2012-02-19 22:06:47

3

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