混淆
为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. http://pyob.oxyry.com/
代码混淆库 pyobfuscate 不支持python3
python2 pyobfuscate.py malicious.py > malicious_obfuscated.py
利用 AST 混淆源码
AST,即抽象语法树,它可以将源代码以树状结构表示。Python 内置了 ast 模块,该模块通过内置函数 compile() 和 parse() 将 Python 源代码解析为 AST,之后可以利用 ast 模块内的方法对 ast 节点进行相应的操作,混淆处理后使用 codegen 库将 AST 重新生成为 Python 源码。
```txt
python2 astobf.py malicious.py > malicious_astobfed.py
对代码进行混淆以降低源码可读性
将 py 文件编译为二进制 pyc 文件
使用 Pyinstaller 打包源码为二进制可执行文件
使用 PyArmor 加密脚本
将 py/pyc 文件使用 AES 加密为 pye 文件
将 py 文件转为 c 文件后编译为动态链接库文件
PyArmor 的工作原理相对复杂,有兴趣的朋友可以参考官方的说明文档:
https://pyarmor.readthedocs.io/。
pyconcrete
参考资料
https://blog.csdn.net/weixin_52400971/article/details/109772803 https://blog.csdn.net/weixin_43572000/article/details/83986683
|