如何签署系统dll(如kernel32.dll)

时间:2014-08-08 11:42:35

标签: windows

我对数字签名有疑问。 据我所知,如果一个可执行文件或dll带有一些签名,当我右键单击该文件时,我将能够看到“数字签名”选项卡。

但是当我右键单击kernel32.dll时,它没有显示此选项卡(“数字签名”),但我知道此文件是由Microsoft签名的。

这个dll(kernel32.dll)有一些WinVerifyTrust的引用,这些引用不存在于常规的数字签名exe或dll中。

有人可以解释一下系统dll的签名方式与常规dll的不同之处吗?什么是wintrust.dll档?

我签下常规dll如下:

signtool sign /v /f  MySPC.pfx mydll.dll

但我确信系统dll没有以这种方式签名。请帮我理解这一点。

1 个答案:

答案 0 :(得分:2)

自:http://blog.didierstevens.com/2008/01/11/the-case-of-the-missing-digital-signatures-tab/

签署PE文件有两种不同的方法:向PE文件添加数字签名(嵌入式数字签名),或者将PE文件的散列添加到安全目录文件(文件类型.CAT)。

当PE文件具有嵌入式数字签名时,文件的“属性”对话框将托管“数字签名”选项卡。

但是,当通过安全目录文件签名文件时,不会显示“数字签名”选项卡。

关于wintrust.dll:它提供了API来验证对文件,签名或证书的信任。例如WinVerifyTrust API。

相关问题