Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3代码的模糊处理工具_Python_Python 3.x_Obfuscation - Fatal编程技术网

Python3代码的模糊处理工具

Python3代码的模糊处理工具,python,python-3.x,obfuscation,Python,Python 3.x,Obfuscation,Python3是否有任何现有的python代码混淆工具 如果我想隐藏/混淆代码,请不要试图告诉我Python不是正确的选择。或者正确的许可证应该保护代码而不是混淆 更新:这个问题并没有重复问题:我只是问是否有一个工具可以混淆Python。不多也不少。(如果没有,我想知道为什么我会得到这么多反馈…无论你做什么,在某个时候Python解释器将读取未模糊的Python字节码。从这里很容易回到源代码(减去注释和不明显的布局)。这就是为什么每个人都说几乎不可能混淆Python。几乎不可能混淆Python,

Python3是否有任何现有的python代码混淆工具

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


更新:这个问题并没有重复问题:我只是问是否有一个工具可以混淆Python。不多也不少。(如果没有,我想知道为什么我会得到这么多反馈…

无论你做什么,在某个时候Python解释器将读取未模糊的Python字节码。从这里很容易回到源代码(减去注释和不明显的布局)。这就是为什么每个人都说几乎不可能混淆Python。几乎不可能混淆Python,这意味着没有好的工具可以混淆Python。我担心说“我知道这不能非常有效地完成,但是有什么工具可以完成它吗?”

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


请注意,这些方案仍然相对容易获得,如果您想要提供可导入的Python模块(而不是整个程序),则根本不起作用。这就是为什么我不希望发现有人已经为您编写了一个工具。如果我是您的话,我不会采用混淆的方法,而是研究其他方法来发布可执行的二进制文件,而不是(字节)代码

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

  • (将Python转换为可编译的C代码)
  • (仅限Windows)
  • (仅限Mac)
我不知道这些工具有多防黑客,但我认为值得一看


编辑:该死,错过了Python 3的部分。这有点难以帮助,因为你没有写任何关于产品本身的东西(操作系统、图形用户界面等)。如果它也可以是Python 2代码,但您已经用Python 3编写了所有代码,我建议。

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

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

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

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

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


在这一点上相信我:你主要担心的应该是获得更多的用户,而不是更少的盗版。通过使软件更好,而不是更差,您可以获得更多的用户。开源将在这方面有所帮助。

隐藏代码的最佳方法是不要发布代码

发布服务-您收到他们的数据,然后返回处理后的数据。传输可以通过网络、电子邮件、DHL、鸽子、电话、重力脉冲等方式进行。

是Python代码缩小器、模糊器和压缩器

此工具适用于Python3

更新:此项目已停止。

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

+1的答案是,即使它没有提供现有工具的名称/链接。您为py2c提供的页面没有显示我可以找到项目实际存在和工作的证据,就我所知,完全通用的Python-to-C转换器在任何意义上都不可能存在。我相信所有其他人只是将一个Python解释器与Python字节码捆绑在一个可执行文件中,这对于恢复源代码来说只比运送.pyc文件稍微困难一些。我完全同意你所说的一切。。。如果您的软件面向开源社区和/或私人用户。但对于分布到已知客户群的商业应用程序,情况并非如此…@gecco:是的,对于商业应用程序也是如此。我写这个答案时考虑到了商业应用。事实上,对于分发到已知客户群的应用程序来说,这是非常正确的,因为这样您就知道谁有副本,因此您就有了一个较小的一组可能是谁首先制作了副本,从而更容易找到罪魁祸首。在任何情况下,混淆代码都无助于保护您的应用程序免遭盗版。有一个关于如何使用Cython的教程,@Lennartreegebro建议,当目标市场是中国时,开源不是一个好主意。这只适用于发达国家,1.版权受到尊重,2.司法系统不腐败。几乎所有不符合这两项要求的国家