像Python这种解释性的语言,要想私有拦孙仔化部署的同时又保护好源码,就像是对于鱼和熊掌的追求。
虽然做不到尽善尽美,但是对代码进行混淆,增加一点破解的难度,或许能规避一些泄露的风险。
本次演示环境:linux
确保要发布的包根目录("demo")中有__main__.py文件,这个是程序执行入口。
编译
批量改名.pyc文件
移动.pyc文件
清理.py文件
清理__pycache__文件夹
打包成zip
运行时只要将zip文件作为参数即可
最终整合脚本
调用方式
对于在变量和函数名上的混淆有点小儿科,而对于跨文件的类名的混淆又太容易实现。
所以对于混淆程度的取舍,要视工程的规模而定。
2.1 混淆工具pyminifier
在原来的工具 pyminifier上修复了几个bug。
安装:
python3 安装
或者clone下来,自行安装
使用例子
2.2 源码变更
不同的配置对于源码的要求不同,以下是笔者踩过的坑。
其他混淆想法
结合混淆、编译和打包,尝试出以下发布脚本。
主要的思路 :创建一个工作目录tmp,然后在此目录下混淆、编译python代码,完成后把内容打包成pyc文件,再将pyc文件和其他配置文件移凯冲动到dist,发布dist即可。
混淆的目的是最大程度保护源码,在发布到客户端后不被轻易破解简汪。
免流高级混淆可以使用OpenVPN、SoftEther VPN、WireGuard等软件来实现,它们都是开源的虚拟专用网络(VPN)软件,可以帮助您更安全地访问互联网,保护您的隐私和安全。OpenVPN是最常用的,它可以提供最高级别的安全性和隐私保护,可以支持多种加密算法,并且可以在多个平台上使用。SoftEther VPN是一款强大差闷的VPN软件,可以帮助您更安全地访问互联网,并且可以支持多种加密算法,可以在多个平台上使用。WireGuard是一款新兴的VPN软件,它可以帮助您更安全地访问互联网,并且可以支虚洞弯持多种加密颤郑算法,可以在多个平台上使用。apt,全称Advanced Packaging Tool,是一个在Debian和Ubuntu中的shell前端软件包管理器。
apt命令提旁卜供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,这些命令既简洁又好记。不过apt命令执行需要超级管理员权限。
apt语法格式:
apt[options][command][package...]
options:可选,选项包括-h、-y、-q等等。
command:要进行的 *** 作。
package:安装的包名。
apt常用命令
sudo apt update:列出所有可更新的软件清单命令
sudo apt upgrade:升级软件包
apt list --upgradeable:列出可更新的软件包及版本信息
sudo apt full-upgrade:升级软件包,升级前先删除需要更新的软件包
sudo apt install :安装指定的软件命令
sudo apt install :安装多简迟个软件包
sudo apt update :更新指定的软件命令
sudo apt show :显示软件包具体信息,比如:版本号、安装大小、依赖关系等
sudo apt remove :删除软件包命令
sudo apt autoremove:清理不再使用的依赖和库文件
sudo apt purge :移除软件包运咐穗及配置文件
sudo apt search :查找软件包命令。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)