PyInstaller加密 - 密钥

Luc*_*asi 7 python pyinstaller

我试图理解为什么PyInstaller文档声明可以轻松提取加密Python源代码的--key参数:

此外,通过在PyInstaller的命令行上指定加密密钥,可以使用AES256对Python字节码进行模糊处理.请注意,提取密钥并获取原始字节代码仍然非常容易,但它应该可以防止大多数形式的"随意"篡改.

我对AES-256的基本理解是,如果没有人拥有你指定的加密密钥,他们就无法"轻松"提取它.

有没有人有更好的理解?

Jea*_*bre 15

Pyinstaller可选择使用非常强大的方法加密python源.

当然没有键,几乎不可能提取文件.

但仍然需要在运行时访问源或程序无法工作(或者每次都必须提供密码,例如受保护的excel文件).

这意味着密钥位于已安装软件中的某个位置.由于所有这些东西都是开源的,查看源代码会告诉你PyInstaller嵌入密钥的位置.当然,这不是微不足道的,而是一个加密破解的问题,只是逆向工程 - 添加 - 可用的源.


Gre*_*reg 5

Jean-Francois 上面的答案是正确的 - 加密密钥必须与可执行文件一起分发到某个地方,否则它在运行时无法自解密。

根据逆向工程博客,密钥分布在构建可执行文件时生成的 .pyc 文件之一中。反编译此文件可能会允许访问密钥,然后可以使用该密钥来解密静态代码。(由于该博客是 2017 年的,他谈论的位置可能已经改变,但钥匙仍然必须在某个地方)