[发明专利]一种Python代码加固保护的方法及其系统有效
申请号: | 202010004234.9 | 申请日: | 2020-01-03 |
公开(公告)号: | CN111240654B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 刘德建;官泉;陈宏展 | 申请(专利权)人: | 福建天晴在线互动科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F8/73;G06F21/12 |
代理公司: | 福州旭辰知识产权代理事务所(普通合伙) 35233 | 代理人: | 程勇 |
地址: | 350212 福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 python 代码 加固 保护 方法 及其 系统 | ||
本发明提供了一种Python代码加固保护的方法,所述方法为:步骤S1、对目录内的每个Python源代码文件进行解析;解析后进行混淆操作,然后对全文件进行压缩,再进行加密操作;步骤S2、根据用户设定的入口函数,添加一份新的可运行加密文件的新入口函数的Python源码,添加新入口函数的Python源码能使程序找到正确的解密途径,在运行时正常解密并执行;步骤S3、开发解密模块,所述解密模块用于在程序运行时并对加密的Python源代码文件进行解密,并根据新入口函数的Python源码将解密后的文件重新导入程序中进行运行;本发明只需指定源码路径和程序入口函数以及添加解密模块即可进行加固,极大地减少开发成本。
技术领域
本发明涉及计算机编程技术领域,特别是一种Python代码加固保护的方法及其系统。
背景技术
Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
目前使用Python语言编写而成的程序,在未打包的情况下会编译成pyc后缀的文件和带界面代码的pyw后缀的文件,以及优化后的pyo后缀的文件。直接使用文本编辑器查看这些文件并不会看到源码,但是经过简单的反编译,即可看到源码,使Python程序在商业用途上无法保护自身权益。
外界针对Python代码的加固保护通常采用以下方式:
1.使用C语言或者可以生成本地二进制的语言来编写关键的需要保护的代码,将其编译成pyd后缀的文件,作为Python调用的扩展来使用。
该方案虽然是较佳的Python代码保护方式,但是在开发环节中需要耗费人工针对不同项目的不同业务的核心代码进行移植,增加了额外的开发成本。且该方式仅保护了核心的代码,并非完全保护。
2.使用现有的打包工具对python代码进行编译并打包,在打包的同时对代码进行加密,并将密钥和解密算法单独编译成pyc文件。
该方案虽然简化了加固流程,无需针对不同的项目和业务代码进行特殊处理,通用性良好,但是将含有秘钥和解密算法的pyc文件并未被有效加固,所以可以被反编译后获得解密算法,从而得到被加固的源代码,不能有效保护程序。
本发明涉及的技术术语解释:
发明内容
为了解决上述问题:即繁琐的加固流程和过高的开发成本,而简便的通用加固方案并不能有效防护代码,本发明提供一种Python代码加固保护的方法。
本发明采用以下方案实现:一种Python代码加固保护的方法,所述方法包括如下步骤:步骤S1、对目录内的每个Python源代码文件进行解析;解析后进行混淆操作,然后对全文件进行压缩,再进行加密操作;
步骤S2、根据用户设定的入口函数,添加一份新的可运行加密文件的新入口函数的Python源码,添加新入口函数的Python源码能使程序找到正确的解密途径,在运行时正常解密并执行;
步骤S3、开发解密模块,所述解密模块用于在程序运行时并对加密的Python源代码文件进行解密,并根据新入口函数的Python源码将解密后的文件重新导入程序中进行运行。
进一步的,所述步骤S1中进一步具体为:对目录内的每个Python源代码文件进行解析;当解析获取到类、函数、全局变量、局部变量的名称字符串,则将名称字符串替换成随机乱序,或者无意义的字符,或由用户设定的字符进行混淆操作;当解析到常量字符串时,对每个字符串使用简单异或,或者取反,或者通过加密算法进行加密操作;当解析到常量浮点值或常量整型数值时,对其进行单次或多次数学运算操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建天晴在线互动科技有限公司,未经福建天晴在线互动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010004234.9/2.html,转载请声明来源钻瓜专利网。