【问题标题】:Suggestion to do close source my python project建议关闭源代码我的 python 项目
【发布时间】: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


【解决方案1】:

您是否正在使用 Python 2 运行 Python 3 程序?错误消息仅在您使用 Python 2 时才有意义,其中 exec 是关键字。

要混淆多个文件,请参阅http://liftoff.github.io/pyminifier/pyminifier.html

Pyminifier 现在可以一次性压缩/混淆任意数量的 Python 脚本。例如,./pyminifier.py -O *.py 将缩小和混淆当前目录中以 .py 结尾的所有文件。为了防止在多个文件中使用不同的混淆标识符时出现问题,pyminifier 将通过查找表跟踪替换内容的内容,以确保 foo_module.whatever 在所有源文件中得到相同的替换。 在 2.0 版中添加

【讨论】:

  • Ops,你是对的,我使用了错误的 python。通过 python3 new.py 那些问题消失了
  • 我必须为每个班级运行pyminifier --obfuscate --gzip ? @ImperishableNight
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
相关资源
最近更新 更多