【问题标题】:python compile script to "unreadable" formpython将脚本编译为“不可读”的形式
【发布时间】:2016-07-02 09:43:54
【问题描述】:

我想编译 python 脚本,所以没有人能够轻松地读取源代码(里面有文件和检查一些哈希的函数 - 所以我想隐藏它)。 我试过py_compile.compile("script.py"),但是当我在纯文本编辑器中打开编译文件(.pyc)时,我可以看到一些可读形式的字符串和函数名。我需要防止这种情况发生,所以它不应该很容易阅读。

这有什么用? (我在linux上,python 2.7)

【问题讨论】:

标签: python


【解决方案1】:

你需要 python obfuscator。另一种方法是使用Nuitka 将脚本编译为二进制文件。

【讨论】:

  • 感谢您的评论。请问,如何在linux上用nuitka编译它?我的意思是,我只需要将一个 script.py 编译为一个文件(最近我在 windows 上尝试过,但它创建了包含 dist 文件和依赖项的整个程序分发,但我只需要编译这个脚本而不是其他依赖项,因为我将在安装了整个 python 环境的 linux 上运行它。)也许我可以安全地在 linux 上编译它“nuitka script.py”并删除 dist 目录。对吗?
  • @peter 我现在无法测试它,但如果我是对的,在“nuitka script.py”之后,您将在“dist”目录中获得“script”二进制文件。默认情况下不会包含额外的依赖项。
  • 我现在在 linux 上试过了。它生成了一个 exe 文件(我可以在 linux 上运行,哇)但是当我在 texteditor 中检查这个 exe 文件时,我发现了我想要“隐藏”的秘密字符串(使其不可读)。也许不可能生成带有隐藏秘密字符串的编译二进制代码,而我唯一的方法就是使用哈希函数的组合来使其难以在我的脚本源中找到。
  • @peter,如果它只是字符串,编译器和混淆器都不会隐藏它。二进制只会“混淆”您的程序逻辑。您可以混淆字符串并将其(混淆字符串)放在代码中,并使用在运行时将其转换为真实字符串的函数。以二进制形式,很难理解您如何对“可见”混淆字符串进行去混淆处理。这是字符串混淆示例:stackoverflow.com/a/982310/1113207
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 2018-06-13
  • 1970-01-01
  • 2012-09-02
相关资源
最近更新 更多