OPY - 用于 Python 的混淆器,添加了字符串混淆,添加了关键字
项目描述
<图><图说明>
著名的克里特岛费斯托斯圆盘,历经千年不解之谜。
</figcaption> </figure>
Opy 将免费混淆您广泛的、真实的、多模块的 Python 源代码!您可以通过编辑配置文件为每个项目选择要混淆的内容和不混淆的内容:
您可以递归地从混淆中排除某些模块的所有标识符。
您可以排除包含 Python 代码的人类可读配置文件。
您可以通过排除它们使用的标识符来使用 getattr、setattr、exec 和 eval。
您甚至可以混淆模块文件名和字符串文字。
您可以从任何平台运行您的混淆代码。
修复的错误:
utf-8 强制设置(问题 25)
pep8_comments 配置设置现在默认为 True,使得 opy 可以将自己混淆为测试
修复了项目根目录上方目录的错误复制
__init__.py 文件的名称现在默认保持不变
模块目录适当重命名
.pyc 文件不再复制到目标目录树。注意从现有的目标树中删除它们,因为它们会破坏混淆!
从 __future__ 导入现在可以正确处理
非常欢迎错误报告和功能请求,并将在非承诺的基础上认真考虑
什么是新的:
可以指定输入目录、输出目录和配置文件记录
已实现skip_path_fragments
配置文件中的解释性注释更加清晰
为所有配置设置提供合理的默认值
-h an –help 除了 ?
添加了 pep8_comments 选项
添加了对以 __ 开头的名称混淆的支持
许可证从 QQuickLicense 更改为 Apache 2.0
空行被删除
安装:
下载 Opy 并将其解压缩到您计算机的任意目录中。
您只需要文件 opy.py 和 py_config.txt。它们位于解压后的 Opy 版本的 opy 子目录中。
将 opy.py 或脚本放在操作系统的路径中以启动它,或者简单地将 opy.py 复制到项目的顶级目录。
利用:
为了安全起见,请将您的源代码和有价值的数据备份到离线媒体。
将 opy_config.txt 的副本放在项目的顶层目录中。
根据 opy_config.txt 中的备注调整到你的需要。
该文件仅包含纯 Python 并且已执行,因此您可以在其中做任何聪明的事情。
打开一个命令窗口,转到项目的顶层目录并从那里运行 opy.py。
如果您的项目的顶级目录是例如../work/project1,那么混淆结果将在../work/project1_opy 中。
进一步调整 opy_config.txt,直到您对结果满意为止。
键入“opy?” 或'python opy.py?' (不带引号)在命令行上显示帮助文本和对许可证的引用。
重要说明:
仅在非常需要时混淆您的 Python 代码。自由是 Python 社区的主要好处之一。与此一致的是,Opy 的来源没有被混淆。
混淆代码示例:
import Tkinter as l1111lll1 import tkFileDialog import os from util import * from l1l111l import * from l1llll1 import * l1l1lll1l1l1 = 35 l1l11l1ll1 = 16 class l111l1l111l (l1111lll1.Frame, l1lll11ll1): def __init__ (self, parent): l1111lll1.Frame.__init__ (self, parent) l1lll11ll1.__init__ (self) self.l1l1ll11llll = [] self.l1l1ll11llll.append (l1111lll1.Frame (self, width = l1l1llll1111, height = l1l11l111l)) self.l1l1ll11llll [-1] .pack (side = l1llll (u'ࡶࡲࡴࠬ')) self.l1l1ll1ll11l = l1111lll1.LabelFrame (self, text = l1llll (u'ࡒࡦࡵࡤࡱࡵࡲࡩࡩ࠸'), padx = 5) self.l1l1ll1ll11l.pack (side = l1llll (u'ࡺࡱࠢ'), fill = l1llll (u'ࡦࡴࡺࡨࠧ'), expand = True)
已知限制:
字符串文字后的注释应以空格开头。
字符串文字中的 ' 或 ” 应该用 \ 转义,而不是加倍。
如果 pep8_comments 选项为 False(默认值),则字符串文字中的 # 只能在开头使用,因此请使用 'p''#''r' 而不是 'p#r'。
但是,如果 pep8_comments 选项设置为 True,则只有 <blank><blank>#<blank> 不能用于字符串文字的中间或末尾
字符串文字的混淆不适合敏感信息,因为它可能会被轻易破坏
不支持以 __ 开头的方法重命名后门(不可覆盖的方法,也称为私有方法)
就是这样,享受!
雅克·德·胡格
您可能喜欢的其他软件包:
精益和平均的 Python 到 JavaScript 转译器,具有多重继承https://pypi.python.org/pypi/Transcrypt
带有 Arduino 代码生成的 Python PLC 模拟器https://pypi.python.org/pypi/SimPyLC
事件驱动的评估节点https://pypi.python.org/pypi/Eden
认真对待初学者的轻量级 Python 课程(正在建设中):https ://pypi.python.org/pypi/LightOn
执照
版权所有 2014、2015、2016、2017 Jacques de Hooge,GEATEC 工程,www.geatec.com
根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非遵守许可,否则您不得使用此文件。您可以在以下网址获取许可证的副本
除非适用法律要求或书面同意,否则根据许可分发的软件将按“原样”分发,没有任何明示或暗示的保证或条件。有关许可下的特定语言管理权限和限制,请参阅许可。