Python源代码混淆器如何使用
oxyry python obfuscator
目前的加密手段:
- 只发行 pyc: 可以用现成工具复原
- 用打包 exe 打包: 可以用现成工具复原
- cython: 要加密单一的模块 /特制算法很有效,不过对很多模块的源代码容易出不了坑,比如 django 写的 app
- 改字节码的 python: 未丢失信息,容易复原
这个混淆器可以做到尽量使重写比看懂容易,可以多种手段并用,避免发行的程序被二次开发
PS. 几年前发过,今天重新改了下支持到 python 3.6
Python源代码混淆器如何使用
之前遇到过魔改 python 解释器的,运行的时候得打包解释器一起运行。
要使用Python源代码混淆器,最常用的是 pyarmor。首先通过 pip install pyarmor 安装。然后,在你的项目根目录下,执行 pyarmor obfuscate your_script.py 即可生成混淆后的代码。混淆后的文件会输出到 dist 目录中,可以直接用Python解释器运行,如 python dist/your_script.py。
如果你需要混淆整个包,命令是 pyarmor obfuscate --recursive your_package/。pyarmor 默认会进行基础混淆,你还可以通过 --advanced 等选项启用更高级的混淆技术,比如控制流扁平化,这会让代码更难反编译,但可能会轻微影响运行效率。
这里有个简单的例子。假设你有一个文件 hello.py:
# hello.py
def greet(name):
print(f"Hello, {name}!")
if __name__ == "__main__":
greet("World")
在命令行运行:
pyarmor obfuscate hello.py
之后查看 dist/hello.py,你会发现代码已经完全变样了,但功能不变。
总结:用 pyarmor 一行命令就能混淆你的代码。
只是把变量名混淆了一下,感觉还是有点弱。。
既然要加密,为啥要用 python
放出去的代码要避免被逆向,总是有风险,要完全避免被逆向,硬件上加密狗,要么就 saas
支持楼主,这个产品其实是防了人,不防机器。不过稍大的项目,破坏了变量名的字面含义,已经很难理解了,就像看别人变量名瞎起名都会造成业务逻辑难以理解,根本看不下去了
没源码啊
不知道 cython 能不能搞定 flask

