你知道任何可以帮助我混淆python代码的工具吗?
答案 0 :(得分:15)
您的问题空间不详。这是一个命令行应用程序?这段代码应该用作库吗?
除了另外两个答案之外,您还可以将代码嵌入到二进制文件中。启动时,解码代码并评估字符串。这也适用于共享库扩展。我认为你也可以用字节代码做到这一点,但它不会像调用Py_EvalCode那么简单。
py2exe或freeze是其他解决方案,它将代码转换为可执行文件。它只包含二进制文件中的代码,并没有做任何严重的限制,但它仍然比打开.py文件更难。
您可以在Cython中编写代码,类似于Python并在C中编写Python扩展文件,以用作.so。这可能是逆向工程中最难的,并且仍然为您提供高级语言来进行开发。
它们都是可以破解的,所有解决方案都是如此。你想要它有多难?
答案 1 :(得分:12)
答案 2 :(得分:7)
我实际上发现了一个非常好的项目,它基本上将Python转换为C ++并创建一个二进制的静态链接文件。
答案 3 :(得分:5)
在许多情况下,您可以发送字节编译的.pyc文件而不是.py源文件。这为您提供了一定程度的混淆。正如pyffuscate自述文件所示,这有局限性。但是你可以将这两种方法结合起来。
答案 4 :(得分:4)
Python的标准库包括compileall.py。您可以在目录上运行它,它将为您的所有源文件生成.pyc文件。 .pyc文件只包含字节码和文档字符串,并将删除所有注释。然后,您可以复制此目录,然后运行rm -rf $(find . -name .py)
之类的内容以删除原始源文件。
答案 5 :(得分:2)
最好的办法是使用Shed Skin编译它,这是一个实验性的Python-to-C ++编译器。
答案 6 :(得分:0)
虽然它没有进行模糊处理,但这个Python recipe可以很好地减少Python代码的大小,包括删除注释。