专利汇可以提供一种Python脚本混淆、水印的方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供一种Python脚本混淆、 水 印的方法及装置,其中,一种Python脚本混淆、水印的装置,包括脚本源代码编译单元、解析单元、规则记录单元、优先权设定单元、co_varnames生成单元、封装单元、Loader生成单元、加密单元以及pyc文件生成单元,本发明还提供了一种Python脚本混淆、水印的方法,以提高python程序模 块 的安全性,并且保护编译后Python脚本不被反编译、水印不能被篡改,且兼容CPython、Jython、IronPython、PyPy等各种python解释器。,下面是一种Python脚本混淆、水印的方法及装置专利的具体信息内容。
1.一种Python脚本混淆、水印的方法,其特征在于,包括如下步骤:
第一步:根据要保护python脚本源代码编译单元生成所有PyCodeObject;
第二步:为PyCodeObject的字节码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文件。
2.根据权利要求1所述的Python脚本混淆、水印的方法,其特征在于,在第二步中跳转规则为:判断跳转是否为相对跳转或者是否直接跳转、跳转是否为无条件或者是否有条件跳转,按照OPBLOCK的跳转顺序和跳转的条件记录规则并设定优先权。
3.根据权利要求1所述的Python脚本混淆、水印的方法,其特征在于,在第三步中,按照第二步记录规则和设定优先权连接第二步的中OPBLOCK,若为非跳转OPBLOCK,则生成一个JUMP_ABSOLUTE连接其顺序并执行下一个OPBLOCK;若为无条件直接跳转OPBLOCK,则修正其直接跳转的位置;若为无条件相对跳转OPBLOCK,则将相对跳转修改为直接跳转并修正其直接跳转的位置;若为有条件跳转OPBLOCK,则计算其跳转的位置,生成新的直接跳转到该位置,并修改条件跳转到新直接跳转;若直接跳转超出65535则需要使用EXTENDED_ARG来扩展JUMP_ABSOLUTE指令;最后在跳转指令后填充0-5个随机JUNKCODE字节,通过指令乱序,将指令从物理空间上彻底打乱,是反汇编工具无法顺序解析字节码。
4.根据权利要求1所述的Python脚本混淆、水印的方法,其特征在于,在第七步中,生成混淆后的pyc文件的具体方法为:通过types.CodeType组装混淆后Loader的PyCodeObject,再通过marshal.dumps序列化为字符串,最后在头部添加imp.get_magic()和时间戳保存pyc文件。
5.一种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文件。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
基于机顶盒的游戏功能实现方法 | 2020-05-22 | 782 |
文件处理装置的实时控制方法及系统 | 2020-05-19 | 690 |
用于虚拟机中的集中式软件管理的系统和方法 | 2020-05-24 | 263 |
多协议电信路由选择优化 | 2020-05-18 | 972 |
一种机顶盒EPG页面的合成方法及系统 | 2020-05-16 | 819 |
一种电信交换系统及其方法 | 2020-05-18 | 95 |
无缝应用接口管理器 | 2020-05-20 | 726 |
电子装置、贷款催收案件分案方法及存储介质 | 2020-05-20 | 260 |
具有优先选编规则的迭代软件开发环境 | 2020-05-13 | 38 |
在根据有优选次序的像素传输方法进行数据存储时管理数据终端设备的存储介质中的存储空间的方法 | 2020-05-11 | 36 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。