我最近遇到了一个非常奇怪的问题。我们产品的编译包括签署内核模式驱动程序和添加会签。这是通过调用 DDK(现为 WDK)中包含的 signtool 来完成的:
"%DDKBASE%\6001.18000\bin\SelfSign\signtool.exe" 签名 /T http://timestamp.globalsign.com/scripts/timstamp.dll /ac "path-to-countercert\MSCV-GlobalSign.cer" /s SPC /n "EldoS 公司" %1
直到最近,当我们发现反证书没有添加到签名的驱动程序时,一切都运行良好。signtool 不报告任何错误并默默地忽略证书。签名本身和主证书链已正确应用,并且仅缺少反证书。
来自更高版本 WDK(版本 7600.16385.0)的 SignTool 使用相同的命令行可以正常工作。
我尝试重新注册 capicom.dll,附带有问题的 signtool(它位于同一个文件夹中),但这没有帮助。
我不确定我们是否可以使用来自 7600.16385.0 的 signtool,因为我觉得它可能会破坏与 Windows 2000 的兼容性。
所以问题是,是否有人知道可能出了什么问题?
Upd:嗯,看起来 7600 signtool 工作正常(即使用该版本签名的驱动程序在 XP 和 Windows 7 上工作正常),所以我们现在就走这条路,将来会用我们自己的自制工具替换 signtool 以避免这种情况惊喜。