【发布时间】:2019-10-28 21:29:28
【问题描述】:
我是 python 和 pyqt5 的新手。我用 python 和 pyqt5 编写了一个简单的项目,现在我想关闭源代码以看不到我的源代码。我认为obfuscate 可以做到这一点,所以我安装了pyminifier。
sudo apt install python-setuptools
pip3 install pyminifier
在我的项目中,我有几节课。通过这个命令,我可以obfuscate 我项目的一类:
pyminifier --obfuscate --gzip MainWindow.py
import zlib, base64
exec(zlib.decompress(base64.b64decode('eJytVU1v2zAMvftXaLnUGQJtl10G+NAmHbAObfPRIAWGwVBtylZrS64k56PYj59oO46dpNtlh8QW+UQ9PlI01yonS3HLhF.....
运行pyminifier --obfuscate后,上面的输出显示在我的终端中。
是否推荐必须为每个类运行并将输出代码复制到其他新文件?
如果我这样做,我认为这些正确导入的类彼此不认识,最后应用程序不会运行!!!我说的对吗?
编辑
我通过这个命令混淆了我的项目的入口点:
pyminifier --obfuscate --gzip Main.py
import zlib, base64
exec(zlib.decompress(base64.b64decode('eJzLzC3ILypRKK4s5sqyBZJ6qRWZJVzuYGZiUXoZV1pRfq5CQGVgialeYEl4Zkp6akmxQiZEV6BjQUFOZnJiSWZ+HkShb2JmXnhmXkp+OUwNQgSomMvHFlmPhrsmV6UtigoNTa4sDR+gK1KTNTQ1uQAalDgb')))
# Created by pyminifier (https://github.com/liftoff/pyminifier)
我将此代码复制到其他 file.py 并运行应用程序但出现错误:
python new.py
Traceback (most recent call last):
File "new.py", line 2, in <module>
exec(zlib.decompress(base64.b64decode('eJzLzC3ILypRKK4s5sqyBZJ6qRWZJVzuYGZiUXoZV1pRfq5CQGVgialeYEl4Zkp6akmxQiZEV6BjQUFOZnJiSWZ+HkShb2JmXnhmXkp+OUwNQgSomMvHFlmPhrsmV6UtigoNTa4sDR+gK1KTNTQ1uQAalDgb')))
File "<string>", line 8
j(L.exec())
^
SyntaxError: invalid syntax
【问题讨论】:
-
PyQt5 在这种情况下是无关紧要的
-
老兄
PyQt5 is irrelevant in this case是什么意思? @eyllanesc -
我的项目可以有很多依赖项,但如果我有问题,这并不意味着我会放置与我的依赖项相关的所有标签。在您的情况下,您想要混淆代码并且它不受 PyQt5 的影响,如果它是另一个库,它将是相同的,除非您的问题仅仅因为您使用 PyQt5 而表现不同,但在您的解释中您没有指出这一点。
标签: python python-3.x obfuscation