如何对使用 py2exe 生成的二进制文件进行数字签名?

Posted

技术标签:

【中文标题】如何对使用 py2exe 生成的二进制文件进行数字签名?【英文标题】:How to digitally sign a binary produced with py2exe? 【发布时间】:2015-03-02 11:35:34 【问题描述】:

我使用 py2exe 0.9.2.2 将我的所有 python 脚本打包到 Windows 二进制文件中。 我正在尝试将代码符号应用于二进制文件。直接使用 signtool 会产生损坏的二进制文件。

是否可以对 py2exe 生成的二进制文件进行签名? 怎么样?

【问题讨论】:

【参考方案1】:

这里只是提醒一下我自己找到的解决方案,因为在***上找不到具体的信息。

该方案适用于任何版本的py2exe。

可以申请签名证书,但需要将 zip 库从 py2exe 的 exe 加载器中分离出来。因此,在您的 py2exe 项目的 setup.py 中放入“zipfile”规范,即:

setup(name="name",
      # console based executables
      console=[],

      # windows subsystem executables (no console)
      windows=[myapp],

      # py2exe options
      zipfile = "myapp.lib", # this is the detached zip library code
      data_files = DATA,
      options="py2exe": py2exe_options,
      )

您可以将“.pfx”证书应用到二进制加载器:

signtool sign /d "my_description" /du "www.mysite.eu" ^
   /f my_certificate.pfx ^
   /v myapp.exe

【讨论】:

以上是关于如何对使用 py2exe 生成的二进制文件进行数字签名?的主要内容,如果未能解决你的问题,请参考以下文章

类似py2exe软件真的能保护python源码吗

Java-文件加密传输(摘要+签名)

如何安全地配置 CI 服务器以对二进制文件进行数字签名?

如何使用 Python 生成随机的 Decimal128、Decimal256 数字

golang 读写二进制文件

如何使用 py2exe 和 esky 冻结 Celery?