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

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

1.一种基于代码虚拟化的Python程序加密保护系统,其特征在于,所述系统包括:

pyc分析模块、code对象反汇编模块、加密虚拟机生成模块、code对象后处理模块、code对象生成模块以及pyc生成模块;

所述pyc分析模块用于载入pyc文件,并反序列化读取code对象,从code对象的co_consts字段中递归读取pyc文件中包含的全部函数的code对象;

所述code对象反汇编模块用于将code对象中包含的opcode序列反汇编并拆分为相互独立的单条指令,并根据跳转语句对指令进行分块处理,得到多个不含跳转语句的顺序执行代码片段;

所述加密虚拟机生成模块用于生成虚拟机,并使用生成的虚拟机代码片段替换函数中的代码片段;

所述code对象后处理模块用于对每个函数的代码片段添加花指令,并对每个代码片段进行乱序重排序;

所述code对象生成模块用于对所有的代码片段重新组装为可正常执行的code对象;

所述pyc生成模块用于将重新组装好的code对象打包或压缩,生成新的pyc文件。

2.根据权利要求1所述的一种基于代码虚拟化的Python程序加密保护系统,其特征在于,所述pyc文件为通过py_compile模块对py源码编译得到。

3.根据权利要求1所述的一种基于代码虚拟化的Python程序加密保护系统,其特征在于,所述pyc文件在载入后需裁剪头8个字节。

4.根据权利要求1所述的一种基于代码虚拟化的Python程序加密保护系统,其特征在于,所述新的pyc文件在打包或压缩前需追加pyc文件头。

5.一种基于代码虚拟化的Python程序加密保护方法,其特征在于,所述方法包括以下步骤:

S1、载入pyc文件,并反序列化读取code对象,从code对象的co_consts字段中递归读取pyc文件中包含的全部函数的code对象;

S2、将code对象中包含的opcode序列反汇编并拆分为相互独立的单条指令,并根据跳转语句对指令进行分块处理,得到多个不含跳转语句的顺序执行代码片段;

S3、对于每个函数,查询对应的code对象中co_consts字段是否包含预设字符串常量,如果存在则生成虚拟机,并使用生成的虚拟机代码片段替换函数中的代码片段,否则不对函数进行处理;

S4、对每个函数的代码片段添加花指令,并对每个代码片段进行乱序重排序;

S5、对所有的代码片段重新组装为可正常执行的code对象;

S6、将重新组装好的code对象打包或压缩,生成新的pyc文件。

6.根据权利要求5所述的一种基于代码虚拟化的Python程序加密保护方法,其特征在于,所述pyc文件为通过py_compile模块对py源码编译得到。

7.根据权利要求5所述的一种基于代码虚拟化的Python程序加密保护方法,其特征在于,所述pyc文件在载入后需裁剪头8个字节。

8.根据权利要求5所述的一种基于代码虚拟化的Python程序加密保护方法,其特征在于,所述新的pyc文件在打包或压缩前需追加pyc文件头。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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