首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建具有有效签名的预编码安装程序(MSI或EXE)?

如何创建具有有效签名的预编码安装程序(MSI或EXE)?
EN

Stack Overflow用户
提问于 2014-05-22 12:15:48
回答 4查看 2.4K关注 0票数 7

我们希望我们的用户下载我们的Windows软件的预配置安装程序。预先配置的数据由基于用户帐户数据的设置组成。定制将在运行在Linux上的Java服务器中完成。我们需要让那些安装程序进行数字签名。不幸的是,由于安全策略,我们无法在这些服务器上拥有私有签名密钥。

,您能想出在保存数字签名或其他实现用例的方法的同时,将一些元数据放入MSI或EXE的方法吗?

编辑:要求只有一个文件下载,所以不幸的是并行ini文件不能满足它。它主要是关于提供一组连接点(特定于用户)--我们不会打扰用户,因为我们已经知道了。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-06-03 08:46:17

同时,我找到了一种方法,可以将数据添加到签名的EXE中,而不会使签名无效。是的,我也认为这是不可能的。这是一种可怕的攻击,它通过修改证书部分来工作,而证书部分不是签名的一部分,它位于文件的末尾。所以你可以附加到EXE的末尾,只需做一些节大小的固定。我检查了它的工作,签名是有效的,程序运行,AntiVirus也没有抱怨。

对该办法的说明:

  • http://blog.barthe.ph/2009/02/22/change-signed-executable/
  • http://reboot.pro/topic/15889-modify-a-signed-executable-without-invalidating-its-digital-signature/

添加有效载荷的工作程序:

  • http://reboot.pro/files/file/85-digitalsignaturetweaker/

显然,由于被黑客攻击,它随时可能停止工作。

票数 2
EN

Stack Overflow用户

发布于 2014-05-22 14:29:23

不,你要什么是不可能的。如果文件的签名无效,就不能修改它。这就是签约的全部意义。如果没有执行签名的私钥,您也不能对文件进行签名。

票数 2
EN

Stack Overflow用户

发布于 2014-05-22 15:19:03

我相信克里斯是对的。然而,为了为进一步调查提供一个有用的起点,以下是一些想法:

虽然这可能是一个有问题的设计,但您可以生成一封包含服务器上配置信息的电子邮件,并将其发送给用户,这样他们就可以通过单击电子邮件中的链接,从您的网站上自动启动已签名的安装程序,并在属性中设置适当的设置。我从未尝试过这一点,但MSI确实讨论过:基于URL的Windows安装程序安装示例编写经过完全验证的签名安装

我想您也可以生成一个INI文件,通过电子邮件发送,可以放在签名的MSI旁边,并且MSI可以设计成在安装期间读取INI文件并应用设置。您将添加一个启动条件来要求这个INI。

如果您在未签名的自解压缩器中包装了带有签名MSI的配置文件,我认为您几乎消除了签名过程中的所有好处。我怀疑它是否有用,但应该可以对未签名的MSI使用的外部cab文件进行签名。再说一遍,我没有试过这个,所以我只是猜测。我不知道如果MSI是在签署cab后处理的话会发生什么。就安全而言,我认为这种做法也是胡说八道--几乎没有什么好处。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23806564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档