【问题标题】:Digitally signing a cxfreeze windows executable? [duplicate]对 cxfreeze windows 可执行文件进行数字签名? [复制]
【发布时间】:2012-03-07 02:01:06
【问题描述】:

可能重复:
Outputed py2exe exe won't run only when signed: ImportError

我正在使用 Python 3.2 制作程序。我使用 cxfreeze 将脚本转换为可执行文件。冻结的可执行文件在没有更改的情况下运行良好。当我尝试使用 signtool.exe 对可执行文件进行签名时,exe 会引发 ImportError。有没有办法对冻结的 python3 可执行文件进行数字签名?

谢谢!

【问题讨论】:

  • @STATUS_ACCESS_DENIED 上述链接中的问题(以及提供的解决方案)与 python 2.x 有关。 py2exe 和 pyinstaller 不适用于 python 3.x。谢谢
  • 它们的工作方式似乎仍然相同。如果您通读链接的主题,您会明白为什么这种方法不起作用。这是因为signtool 基本上破坏了存根运行 Python 代码所需的覆盖/有效负载。
  • 我知道问题是一样的,但不是解决方案,因为pyinstaller 解决方案不适用于 python3。所以我认为为 python3 发布一个单独的问题是合适的。无论如何,感谢您的链接和解释。

标签: python windows cx-freeze


【解决方案1】:

来自here

生成可执行文件也有三种不同的选项。 第一个选项是之前唯一可用的选项 cx_Freeze 的版本,即将 zip 文件附加到 可执行文件本身。 第二个选项是创建一个私有 zip 文件 与可执行文件同名,但扩展名为 .zip。这 最后一个选项是默认选项,它是创建一个名为的 zip 文件 library.zip 并将所有模块放在此 zip 文件中。

在阅读(我认为是重复的)主题here 时,很明显为什么会失败。不同版本的语言,是的。不同的工具,是的。不同的方法,不!从您得到的错误中可以明显看出您正在使用第一个选项,并且 signtool 会干扰有效负载。

【讨论】:

  • 使用第三个选项解决了这个问题。再次感谢。
【解决方案2】:

据我了解,signtool.exe 仅用于签署基于 .NET 的应用程序。由于您的应用不是基于 .NET 的,因此会发生此故障(异常)。

【讨论】:

  • signtool 不仅对 .NET 二进制文件进行签名。您的困惑可能来自它随 .NET SDK 一起提供的事实,但它也随 Windows SDK 一起提供。
  • 对不起这些家伙!你们俩都是对的。感谢纠正这一点。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 2011-09-11
  • 2012-06-02
  • 1970-01-01
相关资源
最近更新 更多