可以反编译.pyc文件:反编译Python 2.7 .pyc
是否可以“编译”Python 文件,从而产生人类无法读取的代码,例如
c++ -> exe
二进制文件? ..与纯文本 .py 和非常容易恢复 .pyc 文件不同? (我不介意能不能用暴力破解)
Python 是一种高度动态的语言,支持许多不同级别的内省。因此,混淆 Python 字节码是一项艰巨的任务。 此外,您的嵌入式 python 解释器仍然需要能够
执行您的产品附带的字节码。如果解释器需要能够访问字节码,那么其他人也可以。加密没有帮助,因为您仍然需要自己解密字节码,然后其他人都可以从内存中读取字节码。混淆只会使默认工具变得更难,而不是无法使用。 话虽如此,为了让读取应用程序的 Python 字节码变得
非常困难,您必须执行以下操作:
值。重新连接整个解释器以对不同的操作码使用不同的字节值。
sys._getframe()
函数进行中性化,斜杠回溯信息。
最后,你要问自己这是否值得。坚定的黑客仍然可以分析您的字节码,进行一些频率分析以重建操作码表,和/或向您的程序提供不同的操作码以查看会发生什么,并破译所有混淆。创建翻译表后,反编译字节码就变得轻而易举,而重建代码也不远了。
如果您只想防止字节码文件被更改,请为您的
.pyc
文件嵌入校验和,并在启动时检查这些校验和。如果不匹配则拒绝加载。有人会修补您的二进制文件以删除校验和检查或替换校验和,但您不必付出同样多的努力来提供至少一些令牌保护以防止篡改。
因此,这只是努力的问题。