windows 使用IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY需要哪种签名?

kmbjn2e3  于 2023-08-07  发布在  Windows
关注(0)|答案(2)|浏览(159)

我的一个玩具项目需要PE头文件中的IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY才能运行。我一直在测试它与测试签署,但我正在考虑购买一个证书,如果我能负担得起。
这上面的文档太旧了,所以我不确定应用程序是使用用于内核模式签名的交叉签名证书还是Authenticode代码签名证书进行签名。虽然后者便宜得多,但我还是买不起。
This article只讨论了签名过程,而没有讨论证书要求。This one建议使用 Microsoft Azure Code Signing 项目,但不解释细节。Raxi在this question中的Stack Overflow上声称Authenticode签名就足够了,但我无法从参考文献中找到这一点。
那么Authenticode签名是否足以让一个带有IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY的可执行文件运行呢?
感谢任何人知道这件事并好心地帮助我。

fhity93d

fhity93d1#

我有一个Authenticode证书,可以确认它不足以成功加载带有该标志的PE文件。如果我的Authenticode证书的根CA有交叉签名链,理论上我可以做到,但只有驱动签名证书有一个微软交叉签名的根CA。
您需要一个内核模式驱动程序证书(即使您实际上并不制作驱动程序)来签署可执行文件。
据推测,一旦Azure代码签名公开可用(无论谁知道多长时间),您将能够(免费)以这种方式签署文件,该标志将工作。

ig9co6j1

ig9co6j12#

你可以使用一个旧的过时的内核签名证书进行交叉签名,如果你有一个的话。(将需要向后移动您的pc时钟)不需要时间戳,通常操作系统不会检查证书是否过时。(至少不适用于内核驱动程序)

相关问题