简介
介绍Python代码混淆工具,可以对源代码进行混淆处理,保证功能不变但代码基本不可读。
注意大部分混淆工具都是可逆的,例如编译生成pyc文件可以用 https://github.com/wibiti/uncompyle2 来解码。
pyminifier
pyminifier是一个对Python文件进行压缩、混淆的工具,项目地址 https://github.com/liftoff/pyminifier 。
使用方式比较简单,通过pip安装。
pip install pyminifier
然后直接运行命令,把混淆后的输出重定向文件即可。
pyminifier ./sparse_classifier.py > new.py
默认命令只是对代码顺序进行重排和减少注释,如果需要混淆代码需要加上参数。
pyminifier -O ./sparse_classifier.py > new.py
注意,目前pyminifier只能处理单个文件,而且部分脚本混淆后不可运行,需要手动测试。
Oxyry Python Obfuscator
Oxyry Python Obfuscator是一个在线混淆代码的工具,地址是 http://pyob.oxyry.com/ 。
注意目前Oxyry也只能混淆单个Python文件,测试过混淆后代码可用。
Opy
Opy也是一个代码混淆工具,可以对整个目录的Python文件进行混淆处理,并且支持定义混淆格式,项目地址 https://github.com/QQuick/Opy 。
经过测试,混淆后的Python项目不可直接执行,不建议使用。
编译成C模块
目前大部分开源的Python代码混淆工具都是可逆的,最安全的不可逆方式是把Python代码编译成C模块,直接发布编译后的类库即可。
但需要编写额外的代码来生成C模块,并且生成后的模块不一定可以直接运行。