【技术实现步骤摘要】
一种Python代码加固保护的方法及其系统
本专利技术涉及计算机编程
,特别是一种Python代码加固保护的方法及其系统。
技术介绍
Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。目前使用Python语言编写而成的程序,在未打包的情况下会编译成pyc后缀的文件和带界面代码的pyw后缀的文件,以及优化后的pyo后缀的文件。直接使用文本编辑器查看这些文件并不会看到源码,但是经过简单的反编译,即可看到源码,使Python程序在商业用途上无法保护自身权益。外界针对Python代码的加固保护通常采用以下方式:1.使用C语言或者可以生成本地二进制的语言来编写关键的需要保护的代码,将其编译成pyd后缀的文件,作为Python调用的扩展来使用。该方案虽然是较佳的Python代码保护方式,但是在开发环节中需要耗费人工针对不同项目的不同业务的核心代码进行移植, ...
【技术保护点】
1.一种Python代码加固保护的方法,其特征在于:所述方法包括如下步骤:步骤S1、对目录内的每个Python源代码文件进行解析;解析后进行混淆操作,然后对全文件进行压缩,再进行加密操作;/n步骤S2、根据用户设定的入口函数,添加一份新的可运行加密文件的新入口函数的Python源码,添加新入口函数的Python源码能使程序找到正确的解密途径,在运行时正常解密并执行;/n步骤S3、开发解密模块,所述解密模块用于在程序运行时并对加密的Python源代码文件进行解密,并根据新入口函数的Python源码将解密后的文件重新导入程序中进行运行。/n
【技术特征摘要】
1.一种Python代码加固保护的方法,其特征在于:所述方法包括如下步骤:步骤S1、对目录内的每个Python源代码文件进行解析;解析后进行混淆操作,然后对全文件进行压缩,再进行加密操作;
步骤S2、根据用户设定的入口函数,添加一份新的可运行加密文件的新入口函数的Python源码,添加新入口函数的Python源码能使程序找到正确的解密途径,在运行时正常解密并执行;
步骤S3、开发解密模块,所述解密模块用于在程序运行时并对加密的Python源代码文件进行解密,并根据新入口函数的Python源码将解密后的文件重新导入程序中进行运行。
2.根据权利要求1所述的一种Python代码加固保护的方法,其特征在于:所述步骤S1中进一步具体为:对目录内的每个Python源代码文件进行解析;当解析获取到类、函数、全局变量、局部变量的名称字符串,则将名称字符串替换成随机乱序,或者无意义的字符,或由用户设定的字符进行混淆操作;当解析到常量字符串时,对每个字符串使用简单异或,或者取反,或者通过加密算法进行加密操作;当解析到常量浮点值或常量整型数值时,对其进行单次或多次数学运算操作。
3.根据权利要求1所述的一种Python代码加固保护的方法,其特征在于:混淆操作后,针对每个Python源代码的内容进行压缩,最后对压缩后的数据进行简单异或,或者取反,或者通过加密算法进行加密操作。
4.根据权利要求1所述的一种Python代码加固保护的方法,其特征在于:所述步骤S2中进一步具体为:根据用户设定的入口函数,创建一个新入口函数的Python源码,Python源码内容仅调用了入口函数,Python源码实现了导入带有解密算法的二进制文件,以及加密后的含有入口函数的源代码文件,在程序运行时,将首先运行新入口函数的Python源码,之后执行解密算法,再执行解密后的用户设定的入口函数,从而正常运行程序。
5.根据权利要求1所述的一种Python代码加固保护的方法,其特征在于:所述步骤S3中进一步具体为:查找入口函数并遍历当前需要进行解密的Python源代码,找到后对加密的Python源代码进行解密,即编写与加固应用中加密算法对应的解密算法代码;之后对解密后的文件进行解压缩,即编写与加固应用中压缩算法对应的解压算法代码;添加对解密后的源代码进行导入到新入口函数,新入口函数的Python源码能使程序找到正确的解密途径,并执行解密后的源代码。
6.根据权利要求1所述的一种Python代码加固保护的方法,其特征在于:所述方法还包括对解密模块进行加壳操作,所述加壳操作具体为:先编译解密模块,然后采用加壳技术对解密模块自身进行保护,或者对解密模块内部编写解密代码,而后再编写对解密模块加壳的应用进行保护。
7.一种...
【专利技术属性】
技术研发人员:刘德建,官泉,陈宏展,
申请(专利权)人:福建天晴在线互动科技有限公司,
类型:发明
国别省市:福建;35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。