我正在编写驱动程序,我需要检查其中的PE文件的签名。我知道如何在用户模式下执行此操作并且根据http://forum.sysinternals.com/topic19247.html [^]工作正常但是现在我需要在我的驱动程序中执行相同操作,我不能像在我的司机中“wintrust.h”,所以我一无所知。关于如何在内核模式下验证PE签名的任何建议?
谢谢
答案 0 :(得分:0)
不幸的是,自我检查不会给你任何东西 - 篡改司机的那个也会删除支票。然而,对于教育需求,这是一项有趣但具有挑战性的任务。
您需要自己实现Authenticode验证。 Authenticode基于PKCS#7 / CMS和X.509证书。您需要在内核模式下重新实现所有这些功能。
虽然实现RSA很简单,但ASN.1解析器和PKCS7格式处理要复杂得多。您可能希望找到一些可以适用于内核模式的现有C代码。例如,您可以查看cryptlib。 Cryptlib支持CMS(这是你所需要的)并且是跨平台的,所以你不应该在内核模式上适应它时遇到问题。