如何从MSI安装程序中删除数字签名?

4

我似乎找不到一种方法来从之前由 signtool 添加到 .msi 文件中的数字签名中删除它。

有任何想法如何做到这一点吗?


一个 .msi 文件被持久化为 COM 结构化存储。在一些快速搜索中,我没有找到任何关于如何将数字签名应用于这种格式的特定信息,因此答案可能是针对 Windows Installer 的。 - Michael Urman
@MichaelUrman:很奇怪,signtool 提供了签署 .msi 文件的选项,但没有提供删除签名的选项。除非我漏掉了某个参数? - c00000fd
2个回答

2
处于类似的情况中:我定制了一个供应商提供的MSI文件,这使原始数字签名无效。然后我需要删除(完全删除而不是替换)该签名,以便我的用户在Windows 10上下载和运行该文件时不会出现错误。
尝试使用InstallShield、XML2MSI、msidb和各种不同的MSI编辑器都没有成功。最终对我有用的是使用编辑器从MSI复合文件中删除数字签名流(在我的情况下它被称为“[5]DigitalSignature”)。
个人而言,我使用MiTeC's Structured Storage Viewer来完成这项任务,但其他工具也可能适用于您。
注意:SSV对我的MSI中的某些流名称显示了垃圾,但仍然正确工作。

1

执行管理安装会从软件包中删除数字签名。管理安装会修改安装包以添加AdminProperties流,这将使原始数字签名失效。管理员可以重新签署该软件包。


好的发现。但我不想安装这个MSI。如果删除数字签名,它仍然能工作吗? - c00000fd

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