Python程序代码混淆、编译、打包、运行(桌面程序防破解向)

Python程序代码混淆、编译、打包、运行(桌面程序防破解向),第1张

像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即可。

混淆的目的是最大程度保护源码,在发布到客户端后不被轻易破解。

其实python不适合做桌面程序,虽然能写出GUI,但只是个摆设,自己玩玩可以,工作没卵用。搞桌面开发要用C++或C#。

因为C++的运行层级低,所以它才可以调用 *** 作系统底层的服务。虽然执行效率极高,但开发效率低下,整体上并不好用。开发框架有QT和MFC。通常选QT,MFC已经基本淘汰。

而C#是通过.Net框架,虚拟机上,为啥它也可以调用底层服务?因为它是微软官方语言。windows已经默认对其打通了底层接口。

Winform可以速成,直接拖控件,所见即所得,适合中小程序。但也偶尔有大型程序,比如早期的Visual Studio就是用Winform开发的。

WPF比Winform复杂,适合大中型程序。比如3DMAX和AutoCAD等。

推荐学习《python教程》。

路径不在系统环境中。安装python程序后桌面上图标没有颜色是因为Python安装路径不在系统的环境变量中。重新安装即可。桌面(Desktop),是指打开计算机并成功登录系统之后看到的显示器主屏幕区域,是计算机用语。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7758354.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存