Python代码混淆

Python代码混淆,python,obfuscation,Python,Obfuscation,你知道有什么工具可以帮助我混淆python代码吗? 或者在在许多情况下,您可以发送字节编译的.pyc文件,而不是.py源文件。这会给您带来一定程度的混淆。正如pyobfuscate自述文件所指出的,这有局限性。但是您可以将这两种方法结合起来 您的问题空间未指定。这是用于命令行应用程序的吗?这个代码应该用作库吗 除了另外两个答案,您还可以将代码嵌入到二进制文件中。当它启动时,解码代码并计算字符串。这也适用于共享库扩展。我认为,您也可以使用字节码来实现这一点,但这并不像调用Py_EvalCode那么

你知道有什么工具可以帮助我混淆python代码吗?


或者在

在许多情况下,您可以发送字节编译的.pyc文件,而不是.py源文件。这会给您带来一定程度的混淆。正如pyobfuscate自述文件所指出的,这有局限性。但是您可以将这两种方法结合起来

您的问题空间未指定。这是用于命令行应用程序的吗?这个代码应该用作库吗

除了另外两个答案,您还可以将代码嵌入到二进制文件中。当它启动时,解码代码并计算字符串。这也适用于共享库扩展。我认为,您也可以使用字节码来实现这一点,但这并不像调用Py_EvalCode那么简单

py2exe或freeze是另一种解决方案,它们将代码转换为可执行文件。它只是将代码包含在二进制文件中,不会进行任何严重的破坏,但仍然比打开.py文件更难

您可以用Cython编写代码,Cython类似于Python,并用C编写Python扩展文件,用作.so。这可能是逆向工程中最难做到的,并且仍然可以为您提供一种高级开发语言


它们和所有解决方案都是可黑客攻击的。您希望它有多难?

Python的标准库包括。您可以在一个目录上运行它,它将为您的所有源文件生成.pyc文件。pyc文件将只包含字节码和docstring,并将删除所有注释。然后你可以复制这个目录,然后运行一些代码,比如“代码> RM -Rf $(find .No.Py)< /Cord>”,以删除原始源文件。

< P>你最好用一个实验Python to C++编译器编译它。

< P>我实际上找到了一个非常好的项目,它基本上将Python转换成C++并创建二进制,静态链接文件


检查一下:

虽然它不做模糊处理,但它非常适合最小化Python代码的大小,包括剥离注释。

重复:更一般的讨论:+1对于Cython,我最近使用过它,并且发现它非常擅长它的功能。最简单的解决方案是什么,如果我只是不想简单的
反编译
成为可能?也有Pypy,但它没有文档记录,并且在它接受的代码中非常有限。@sbumb:你是说RPython吗?PyPy(使用RPython)是Python的完整实现,它接受的代码完全没有限制。@John是的,我说的是RPython。它是PyPy项目的一部分。RPython是PyPy的语言部分。它是Pypy的一个受限子集。然而,Pypy实现了一个相当完整的Python解释器