繁体   English   中英

如何对系统dll(例如kernel32.dll)进行签名

[英]How a system dll(like kernel32.dll) is signed

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

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

该dll( kernel32.dll )具有对WinVerifyTrust某些引用,这些引用在常规的数字签名exe或dll中不存在。

有人可以向我解释一下系统dll与常规dll的区别吗? 什么是wintrust.dll文件?

我按以下方式签名常规dll:

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

但我确定系统dll不会以这种方式签名。 请帮助我理解这一点。

来自: 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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM