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如何运行程序

首先说一下python解释器,它是一种让其他程序运行起来的程序。当你编写了一段python程序,python解释器将读取程序,并按照其中的命令执行,得出结果,实际上,解释器是代码与机器的计算机硬件之间的软件逻辑层。

通俗来说,我们的计算机是基于二进制进行运算的,无论你用什么语言来写程序,无论你的程序写的多么简单或多么复杂,最终交给计算机运行的一定是 0或1,因为计算机只能识别0和1。

我们目前使用的大多数编程语言都是高级程序语言,也就是利于我们人类阅读的语言,要使我们编写的程序能够在计算机上跑起来,要经过一定的转换才可以,python程序大致的过程应该是这样:

源代码-->字节码-->pvm(虚拟机)-->机器码

可以到Python的官方网站下载python(http://www.python.org),通常包括解释器、库文件及简单的编码环境(IDLE)。把源代码编译成字节码其实是为了程序更节省时间,如果源代码没有变动,那么运行程序时会直接从字节码读取,加快速度,把字节码放到虚拟机去解释,可以更好的跨平台运行,最后转换成机器码。

二、Windows系统下搭建python编程环境。

1、进入Python官网http://www.python.org,在“Downloads”下拉菜单中选择相应的 *** 作系统,我们选择windows。

2、这里有32位和64位版本,要和自己的电脑系统相对应。

3、安装刚才已经下载下来的安装包, 安装过程下图所示,使用默认配置,选择“Install Now”,勾选下面的Add Python3.5 to PATH,然后就是一直next,直到完成。

三、认识编程环境

1、在开始运行处运行命令cmd,进行dos模式,输入python,即可进行python的交互式环境。

2、进行到IDLE界面

3、交互式界面可以用于简单的学习,编写较大程序时应到具体的python文件中,python文件默认的后缀为.py,我们可以新建文本文件,然后把后缀扩展名改为.py,然后

最后选择菜单中的Run下的run module即可运行,快捷键为F5。


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

原文地址: http://outofmemory.cn/yw/11997662.html

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

发表评论

登录后才能评论

评论列表(0条)

保存