已经签名的DLL文件如何再次签名?

5

如果DLL文件已经签名,而不需要重新编译,我能否使用微软的SignTool用新证书安全地签署DLL文件?

在我执行此操作后,一切看起来都很正常,但我想要100%确定。

2个回答

7
只要使用以下跟随的SignTool选项进行签名,数字签名就可以附加到DLL中: /as
追加此签名。 如果没有主要签名,则将此签名作为主要签名。
多个签名操作不会覆盖/替换签名。
您可能需要参考Can I remove a digital signature from a DLL?进行进一步参考。
Unsigntool允许从PE部分中删除签名 - 我从未使用过也不建议使用此程序,因此使用它需自担风险
使用/as参数两次签名与未签名的文件之间的差异(如果有)可以通过一些工具(如PE Explorer / PE Viewer)查看可执行文件或DLL的PE部分来查看。

我也阅读了SignTool文档。如果我不使用'/as',会发生什么是不清楚的?新证书是否会被替换?我想要替换旧证书,而不是追加。 - zig

2

您可以使用SignTool进行签名,而且可以无限次数地签名,除非您使用了/as(追加签名)标志,否则新的签名将替换任何旧的签名。我们经常用它来重新签名二进制文件,其原始签名没有时间戳计数器签名。

您可以在文件属性的数字签名选项卡中检查新的签名。


3
顺便提一下,如果您不想附加或替换任何内容,但只想签署之前未签名的二进制文件,您可以使用 signtool verifysigntool verify /pa - staafl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接