[发明专利]一种基于代码虚拟化的Python程序加密保护系统与方法有效

专利信息
申请号: 201911189495.6 申请日: 2019-11-28
公开(公告)号: CN110929234B 公开(公告)日: 2023-03-24
发明(设计)人: 施羊梦燊;费奕铭;鞠方舟 申请(专利权)人: 施羊梦燊;费奕铭;鞠方舟
主分类号: G06F21/12 分类号: G06F21/12;G06F21/14;G06F21/60
代理公司: 济南诚智商标专利事务所有限公司 37105 代理人: 朱晓熹
地址: 211899 江苏省南京市浦口区江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 代码 虚拟 python 程序 加密 保护 系统 方法
【说明书】:

发明提供了一种基于代码虚拟化的Python程序加密保护系统与方法,本发明通过设置pyc分析模块、code对象反汇编模块、加密虚拟机生成模块、code对象后处理模块、code对象生成模块以及pyc生成模块,在不对Python解释器层进行任何修改以及不加载任何第三方dll、so库的前提下,尽可能的高强度保护Python代码,破坏原有pyc文件结构,致使通用反编译工具在架构上无法应用于被加密后的pyc文件,提高程序安全性,实现Python脚本语言所写软件防篡改、防伪造。

技术领域

本发明涉及软件程序加密技术领域,特别是一种基于代码虚拟化的Python程序加密保护系统与方法。

背景技术

目前,市面上使用的私有或公开商业化的Python代码保护方案,大致可分为以下几种类型:

1、对Python源代码进行变量名、函数名混淆,或进行加密处理后使用exec语句执行。该中方法没有改变源代码流程和结构本身,因为Python脚本语言的特殊性,被混淆的代码依然是明文存在,且可被直接查看。虽然丢失了标识符名称之后的Python脚本更加难以阅读,但依旧可以很容易找出关键位置的算法,并可直接修改相关代码,起不到实质上的保护作用。对于将Python脚本进行加密并调用exec的方式,由于可以直接拦截compile与exec语句,从而可以直接获得原始的Python源码。此方式虽然更大程度上加大了分析的复杂度,但相反的却更容易被完全解密,甚至是被做出通用解密工具,直接获取到完整的源码。

2、将Python编译为pyc之后进行分发。由于目前业界对Python的研究较为成熟,而Python的编译机制存在着高度的规律性,因此目前市面上已有“pyretic”、“uncompyle”等通用pyc反编译工具,反编译准确率非常高。将Python编译成pyc之后依旧可以被简单的反编译,无实际保护作用。此方式可直接通过Python的自带模块py_compile完成,知晓率较高,但安全性几乎没有。

3、使用nuitka、pyinstaller、py2exe等第三方库打包成独立的可执行文件。该方式首先遇到的问题即为跨平台问题。例如,用py2exe打包的Python软件,将只能在Windows平台上运行,无法用于Linux系统。同时,打包为可执行之后,因需要附带一个完整的Python解释器以及相关Python自带模块,软件体积大幅度增大。且由于py2exe、pyinstaller等软件均为开源工具,其工作原理非常清晰明了。市面上甚至已经出现了如“pyinstallerrebuilder”等通用反编译、修改后重打包的工具,使得此类方法依旧没有很好的实际保护效果。

4、对pyc本身的co_varnames、co_names等字段混淆后,在co_code中增加花指令并重新生成pyc文件。此方式改良了pyc文件可被轻易反编译的弱点。被修改后的pyc文件不符合Python的正常编译结果,直接导致通用反编译工具报错退出。但这个过程往往是可逆的,即使原始的co_varnames、co_names字段已被抹去,依旧可以通过替换为如var_1、var_2等合法变量名的方式再进行二次处理;而对于co_code中的花指令,由于插花的类型是有限的,可以通过简单的正则表达式予以去除,之后将代码按照流程重排序并修复跳转地址,即可直接送入通用反编译工具进行正常反编译。此方式进一步提高了逆向分析的门槛,但依旧是没有解决原程序流程直接暴露的问题,导致二次处理即可直接反编译。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于施羊梦燊;费奕铭;鞠方舟,未经施羊梦燊;费奕铭;鞠方舟许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911189495.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top