繁体   English   中英

Python3代码混淆工具

[英]Obfuscating tool for Python3 code

是否有适用于 Python3 的现有 Python 代码混淆工具?

如果我想隐藏/混淆我的代码,请不要试图告诉我 Python 不是正确的选择。 或者正确的许可证应该保护代码而不是混淆......

更新:此问题不重复问题如何保护 Python 代码? : 我只是问有没有混淆Python的工具。 不多也不少。 如果没有我想知道为什么我会收到这么多反馈......

不管你做什么,在某个时候,Python 解释器都会读取未混淆的 Python 字节码。 从那以后很容易回到你的源代码(减去注释和不明显的布局)。 这就是为什么每个人都说混淆 Python 几乎是不可能的。 混淆 Python 几乎不可能的事实意味着没有好的工具可以做到这一点。 恐怕只是一厢情愿地说“我知道这不能很有效地完成,但是有什么工具可以做到这一点?”

可能你能做的最好的事情是使用标准加密工具加密你的代码,并用其他语言编写一个小包装程序,它只是解密你的 Python 并运行你的程序,然后在完成后删除未加密的代码。 如果您想投入太多精力,您可能可以使用 C API 做一些事情,并将 Python 解释器嵌入到 C 程序中,以便将未加密的 Python 仅在内存中提供给解释器,而不是磁盘上的文件。

请注意,这些方案仍然相对容易解决,如果您想要提供可导入的 Python 模块(而不是整个程序),则根本不起作用。 这就是为什么我不希望找到任何人已经为您编写了一个工具来完成它。

如果我是你,我不会采用混淆方法,而是研究传送可执行二进制文件而不是(字节)代码的替代方法。

我所知道的工具(可能还有其他一些):

我不知道这些工具的防黑客能力如何,但我认为值得一看。

编辑:该死,错过了 Python 3 部分。 提供帮助有点困难,因为您没有写任何关于产品本身(操作系统、GUI 等)的内容。 如果它也可以是 Python 2 代码,但您已经用 Python 3 编写了所有代码,我建议使用3to2

我建议使用pyarmor 它将代码转换为二进制形式。 唯一的缺点是,您需要分别混淆每个操作系统的代码。

没有办法以任何有用的方式混淆 Python 代码,也没有理由想要这样做。 您似乎想混淆代码以保护它。 这是完全没有意义的,因为您可以只发送 .pyc 文件,这意味着您根本不发送源代码。 并不是说只传送 .pyc 文件会帮助你,因为有 .pyc 文件的反编译器。

如果您的程序相当简单且编码良好,则使用 cx-freeze、py2exe 等创建可执行文件意味着 .pyc 文件最终位于可执行文件中,因此稍微难以找到,而且您也不太明显使用 Python,所以这可能会有所帮助。 但更重要的是,它可能使您的用户的安装更简单。 他们喜欢那样。

如果您真的想以一种有用的方式混淆您的代码,请将其全部转换为使用 Cython,这将创建您可以编译的 C 文件。 这也将加速程序。 然而,Cython 并不完全兼容 Python,因此您可能需要进行更改。

我知道你不想听到这个,但我会说出来是为了其他人的利益:

当然,所有这些都是愚蠢和误导的。 开源对你有好处。 真的。 你不应该保护你的代码,你应该尽可能多地关注它。

相信我:您主要担心的是获得更多用户,而不是减少盗版者 通过让您的软件变得更好而不是更糟,您可以获得更多用户。 开源将在这方面有所帮助。

Pyminifier是一个 Python 代码压缩器、混淆器和压缩器。

此工具适用于 Python 3

更新:该项目已停止。

隐藏代码的最佳方法是不释放它。

广告服务 - 您接收他们的数据,然后返回处理后的数据。 传输可以通过网络、电子邮件、DHL、鸽子、电话、引力子脉冲……

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM