39

你知道任何可以帮助我混淆python代码的工具吗?

4

7 回答 7

15

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

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

py2exe 或 freeze 是其他解决方案,可将代码转换为可执行文件。它只是将代码包含在二进制文件中,并没有做任何严重的混淆,但它仍然比打开 .py 文件更难。

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

它们都是可破解的,所有解决方案也是如此。你想要它有多难?

于 2009-02-23T10:29:49.893 回答
12

http://www.lysator.liu.se/~astrand/projects/pyobfuscate/

或在http://freshmeat.net/projects/pyobfuscate/

于 2009-02-23T09:10:54.590 回答
9

我实际上发现了一个非常好的项目,它基本上将 Python 转换为 C++ 并创建了一个二进制的、静态链接的文件。

看看这个:http ://www.nuitka.net/

于 2012-12-08T10:10:05.727 回答
5

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

于 2009-02-23T09:53:42.583 回答
4

Python 的标准库包括compileall.py。您可以在目录上运行它,它将为您的所有源文件生成 .pyc 文件。.pyc 文件将仅包含字节码和文档字符串,并将删除所有注释。然后,您可以复制此目录,然后运行类似rm -rf $(find . -name .py)删除原始源文件的操作。

于 2011-01-21T22:22:15.680 回答
2

最好的办法是使用Shed Skin进行编译,这是一个实验性的 Python-to-C++ 编译器。

于 2011-08-29T16:31:36.030 回答
0

尽管它不进行混淆,但这个Python 配方非常适合最小化 Python 代码的大小,包括去除注释。

于 2013-08-09T16:37:08.773 回答