在 DLL 文件已经签名后对其进行签名?

Signing a DLL file after it's already signed?

如果 DLL 已经签名而无需重新编译,我能否使用新证书(使用 Microsoft 的 SignTool)安全地签署 DLL 文件?

在我这样做之后,所有东西看起来 犹太洁食,但我想 100% 确定。

只要使用后面的SignTool选项进行签名,就可以给DLL附加数字签名:

/as
Appends this signature. If no primary signature is present, this signature is made the primary signature.

多次签名操作不overwrite/replace签名。

您可能想参考 Can I remove a digital signature from a DLL? 以进一步参考。


Unsigntool 允许从 PE 部分删除签名 - 我从未使用过它,也不推荐使用此程序,因此,使用它需要您自担风险.

可以使用 PE Explorer / PE 查看器 允许查看可执行文件或 DLL 的 PE 部分。

您可以根据需要多次使用 SignTool 签名,除非您使用 /as(附加签名)标志,否则新签名将替换所有旧签名。我们已经多次使用它来重新签署原始签名没有时间戳副署的二进制文件。

您可以在文件属性 Digital Signatures 选项卡中查看新签名。