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