[发明专利]一种基于pyc加密的Python源代码保护方法和系统有效
| 申请号: | 202110650645.X | 申请日: | 2021-06-11 |
| 公开(公告)号: | CN113434874B | 公开(公告)日: | 2022-05-20 |
| 发明(设计)人: | 李肯立;杨圣洪;王岩松;蔡宇辉;秦云川;吴帆 | 申请(专利权)人: | 湖南大学;中电金信软件有限公司 |
| 主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/12 |
| 代理公司: | 武汉臻诚专利代理事务所(普通合伙) 42233 | 代理人: | 宋业斌 |
| 地址: | 410082 湖*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 pyc 加密 python 源代码 保护 方法 系统 | ||
本发明公开了一种基于pyc加密的python源代码保护方法,包括:获取待运行的Python源代码文件中由用户导入的自定义Python文件,对该自定义Python文件进行字节码转化处理,以生成相应的pyc文件,并删除这些自定义Python文件;对pyc文件进行加密处理,以得到加密后的pyc文件,获取Python解释器源代码,对Python解释器源代码进行修改,以得到修改后的Python解释器源代码,对修改后的Python解释器源代码进行重新编译,以生成Python解释器二进制文件,使用生成的Python解释器二进制文件执行待运行的Python源代码文件,以解密得到的加密pyc文件,并得到运行结果。本发明能够解决现有Python源代码混淆方法和Python源代码打包方法存在的对源代码的防护性较低的技术问题。
技术领域
本发明属于网络安全技术领域,更具体地,涉及一种基于pyc加密的Python源代码保护方法和系统。
背景技术
Python编程语言可以说是当下最为流行的计算机编程语言,从20世纪90年代初Python语言诞生到如今,越来越多人的开始使用Python,在各个领域都能看到Python的身影。Python属于脚本(解释性)语言,即编写的Python代码最终是由Python解释器来解释执行,其Python代码文件(.py)本质上跟文本文件没有什么区别,任意一种文本编辑器都可以打开.py文件并查看其源代码。在一些商业场景下,其实并不希望暴露源代码,因此需要使用一些技术手段来保护Python源代码的安全。
目前常用的Python源代码保护方案大概有以下几种:
1、Python源代码混淆:通过将Python源代码中的变量名、类名、函数名等重命名为一些无意义的名字,或者在源代码中插入一些无意义的垃圾代码以实现保护的目的,但其本质上并未实现对源代码的保护,可以通过一些方法将重命名的无意义的变量名、类名、函数名等再次重命名回有意义的名字。
2、使用打包工具(py2exe、pyinstaller)直接打包成.exe的可执行文件:通过使用第三方打包工具,将.py文件打包成.exe可执行文件以实现保护的目的。但通常这些打包工具都是开源的,可以通过分析其源代码来了解其打包的过程,按照相反的过程解包即可。
3、将py文件转换为so文件:通过将py文件转换成动态链接库so文件以实现保护的目的,但该方法不适用于较大的工程,且转换过程比较繁琐。
然而,上述现有的Python源代码保护方案均具有一些不可忽略的缺陷:第一、对于上述第一种方法而言,可以通过二次重命名的方式将重命名后的无意义的变量名、类名、函数名等变成有意义的名字,进而得到Python源代码,因此该方法对源代码的防护性较低;第二、对于上述第二种方法而言,可以通过分析其源代码来了解其打包的过程,并按照相反的过程解包以得到Python源代码,因此该方法对源代码的防护性较低;第三、上述第三种方法的转换过程比较繁琐,不适用于较大的工程。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于pyc加密的Python源代码保护方法和系统,其目的在于,通过对生成的pyc文件进行加密,并修改Python解释器源代码使之可以运行加密的pyc文件,解决现有Python源代码混淆方法和Python源代码打包方法存在的对源代码的防护性较低的技术问题,以及现有将py文件转换为so文件的方法存在的转换过程比较繁琐、不适用于较大工程的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于pyc加密的python源代码保护方法,包括如下步骤:
(1)获取待运行的Python源代码文件中由用户导入的自定义Python文件,对该自定义Python文件进行字节码转化处理,以生成相应的pyc文件,并删除这些自定义Python文件;
(2)对步骤(1)得到的pyc文件进行加密处理,以得到加密后的pyc文件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大学;中电金信软件有限公司,未经湖南大学;中电金信软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110650645.X/2.html,转载请声明来源钻瓜专利网。





