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

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

这里介绍3个python桌面开发的包,分别是tkinter,wxpython和pyqt,这3个包都可以快速的开发出桌面应用,下面我简单介绍一下这3个租正包的安装和使用,实验环境win10+python3.6+pycharm5.0,主要内容如下:

1.tkinter:这个是python自带的开发桌面GUI的标准库,不需要安装,跨平台、可移植性高,支持主流的 *** 作系统,像Windows,Linux,Mac等,python自带的IDLE就是采用这个包开发,简单易学,容易上手,适合小型项目的开发,入门GUI开发的话,可以试一下这个包,官网资料https://docs.python.org/2/library/tkinter.html:

程序运行如下:

2.wxpython:这是python一个优秀、成熟的跨平台GUI包,但不是自带的标准库,需要单独安装,支持的组件众多,可以帮助程序员快速的创建功能齐全、界面友好的GUI界面,应用广泛,非常适合中小型项目的开发,官网资料https://docs.wxpython.org/,可以参考学习一下,下面我简单介绍一下安装和使用:

安装,这里直接在cmd窗口输入命令“pip install wxpython”就行,如下:

安装成功后,就可以进行简单的测试了,代码如下,一个简单编辑器:

程序运行截图如下:

3.pyqt:这个是Qt提供给python的一个接口包,Qt功能强大,组件众多,可以快速构建用户GUI界面,所以pyqt的功能贺饥也十分强大,借助于Qt,我们可以构建桌面应用,下面我简单介绍一下pyqt的安装和使用,官网资料http://pyqt.sourceforge.net/Docs/PyQt5/:

安装pyqt5,这个直接在cmd窗口输入“pip install pyqt5”就行,如下:

测试代码如下,一个简单的计算器:

程序运行截图如下:

当然,你也可以借助designer.exe直接拖拽控件,完成GUI界面开发,如下,最后打包成py文件就行:

目前,就介绍这3个包吧,网上也有许多这方面的教程,感兴趣的话,可以搜搜,希望以上分享的内容能对你有所帮禅型返助吧。

一 、当写这篇文章的时候,pyinstaller官网版本对pyqt5打包可能会遇到Could not find QtWebEngineProcess.exe.的错误。解决方法为:

二 、如果有报错:“could not find or load the Qt platform plugin "windows" ”。原因之一可能是你把打包后的文件放在了中文敏雹目录下。只需要将打包后的文件放在英文目录下,就可以解决。

三、 多文件打包为单一文件时,即pyinstaller 命令中加入了-F,也可能会导致错误。尽量不要使用-F。

使用pyinstaller打包的时候团拿罩,仅打包.py文件,其余依赖项只需在打包完成后,拷入打包生成的根目录即可。

命令格式如下,下命令为一条命令,为方便显示塌闹做了分行处理:

以上文图中结构为例,在根目录打开命令窗口,输入命令:

在目录结构:“程序根目录\dist\main\” 下可以找到生成的main.exe。将其他依赖文件拷贝进入“程序根目录\dist\main\” 下,即可运行。

=========吃鸡、撸码复古键盘=========


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存