[发明专利]一种Python脚本混淆、水印的方法及装置有效

专利信息
申请号: 201810139504.X 申请日: 2018-02-11
公开(公告)号: CN108363911B 公开(公告)日: 2021-10-29
发明(设计)人: 赵培源;刘浩杰 申请(专利权)人: 西安四叶草信息技术有限公司
主分类号: G06F21/16 分类号: G06F21/16;G06F21/14;G06F21/12
代理公司: 西安泛想力专利代理事务所(普通合伙) 61260 代理人: 李思源
地址: 710077 陕西省西安市高新区锦*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 python 脚本 混淆 水印 方法 装置
【权利要求书】:

1.一种Python脚本混淆、水印的方法,其特征在于,包括如下步骤:

第一步:根据要保护python脚本源代码编译单元生成PyCodeObject;

第二步:获取PyCodeObject的字节码co_code,利用解析单元按照解析的时间顺序依次生成co_code的OPBLOCK实例,判断OPBLOCK实例中的opcode是否具备跳转,并记录跳转规则;

第三步:依据记录的跳转规则以及生成的OPBLOCK实例,保留生成的OPBLOCK实例的时间顺序,将剩余的OPBLOCK实例随机排列;从物理空间上彻底打乱OPBLOCK实例,使反汇编工具无法顺序解析字节码;

第四步:获取PyCodeObject的局部变量名元组co_varnames,替换为不合法的变量名;

第五步:通过types.CodeType递归组装步骤三生成的co_code与步骤四生成的co_varnames;

第六步:生成混淆的Loader,对Loader源代码进行编译形成Loader+0,并再次对Loader+0的PyCodeObject进行压缩;并以Loader混淆后PyCodeObject的字节码co_code作为密钥对压缩后的数据进行加密,最终替换Loader中的compressed_encrypted_data以便Loader在启动后动态解密和解压;

第七步:生成混淆后的pyc文件;

在第二步中跳转规则为:判断跳转是否为相对跳转或者是否直接跳转、跳转是否为无条件或者是否有条件跳转,按照OPBLOCK的跳转顺序和跳转的条件记录规则并设定优先权。

2.根据权利要求1所述的Python脚本混淆、水印的方法,其特征在于,在第三步中,按照第二步记录规则和设定优先权连接第二步中的OPBLOCK,若为非跳转OPBLOCK,则生成一个JUMP_ABSOLUTE连接其顺序并执行下一个OPBLOCK;若为无条件直接跳转OPBLOCK,则修正其直接跳转的位置;若为无条件相对跳转OPBLOCK,则将相对跳转修改为直接跳转并修正其直接跳转的位置;若为有条件跳转OPBLOCK,则计算其跳转的位置,生成新的直接跳转到该位置,并修改条件跳转到新直接跳转;若直接跳转超出65535则需要使用EXTENDED_ARG来扩展JUMP_ABSOLUTE指令;最后在跳转指令后填充0-5个随机JUNKCODE字节,通过指令乱序,将指令从物理空间上彻底打乱,使反汇编工具无法顺序解析字节码。

3.根据权利要求1所述的Python脚本混淆、水印的方法,其特征在于,在第七步中,生成混淆后的pyc文件的具体方法为:通过types.CodeType组装混淆后Loader的PyCodeObject,再通过marshal.dumps序列化为字符串,最后在头部添加imp.get_magic()和时间戳保存pyc文件。

4.一种Python脚本混淆、水印的装置,其特征在于,包括

脚本源代码编译单元,根据要保护python脚本源代码编译生成所有PyCodeObject,

解析单元,对PyCodeObject的字节码co_code按照时间顺序依次解析生成每个OPBLOCK实例,

规则记录单元,记录OPBLOCK实例中的opcode跳转规则;

优先权设定单元,根据OPBLOCK实例中的opcode跳转规则设定OPBLOCK实例跳转权限,

co_varnames生成单元,获取PyCodeObject的局部变量名元组co_varnames,

封装单元,通过types.CodeType递归组装步骤三生成的co_code与步骤四生成的co_varnames,

Loader生成单元,依据封装单元组装的步骤三生成的co_code与步骤四生成的co_varnames生成Loader;

加密单元:对Loader源代码进行编译形成Loader+0,并再次对Loader+0的PyCodeObject进行压缩;并以Loader混淆后PyCodeObject的字节码co_code作为密钥对压缩后的数据进行加密,

pyc文件生成单元,生成混淆后的pyc文件。

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

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安四叶草信息技术有限公司,未经西安四叶草信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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