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

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

任何一门计算机语言你要学习,都必须花上数年的功夫,有权威数字显示,要培养一个C语言的变成人才,最少花上10年时间;又例如JAVA,学了JAVA两三年和学了十几年的人站到一起聊天,学了两三年的人就发现巨大差距了。给你哪返敬的意见就是,你只能其中挑一些来学。

首先你要知道各种计算机语言的作用,还有就是你是否真的全部用得上,做电脑开发的,一般只需要钻一门开发语言和数据库 *** 作语言就够了,开发语言有李慎面向对象的,还有面向程序的,C就是面向程序的,用来写比较底层的程序,C++就是面向对象的了,还有就是,C++和JAVA两者在开发上面基本上做的事情是一样的,你就不需要两种都学了,一心不能二用,学多了反而会混淆,而且铁定两者都学不精。另外要是你想结合开发一些系统的话,在JAVA的基础上扩展一下,学习J2EE技术。做软件开发,sql语言还是要了解的,要是你选择了asp.net来学,就没有必要学习J2EE了,两者作用一样。而且做开发一般不管美工,flash你就不要学了。

可能你看了上面的有点混乱,总结几套方案给你吧:

方案一(多平台系统开发型):J2EE(J2EE包括JAVA,jsp,等语言,开发过程可以学一点JAVAscript)+sql;

方案二(windows单平台系统开发型):asp.net+sql;

方案三(底层程序开发型):c&c++;

方案四(美工型):ps+flash(这两世告个严格来说不算是计算机语言);

你随便选一个方案去学吧,全部都学我保证你一门语言都学不会:)

两者共同处,就是都是高级语言,语法结构一样,规则略有不同,团前拦差异不大。VB可以说是入门超简单,超好学的一门高级语言。用VB做基础,学习C语言难度应该是不大,就是数组和指针位塌胡置注意一下就可以了。但是牢记我以下说的三点,难度也悔如不大。

1数组就是指针;

2指针就是数组;

3数组时常量指针。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存