[发明专利]脚本保护方法、装置、计算机可读存储介质和计算机设备有效
| 申请号: | 202010269363.0 | 申请日: | 2020-04-08 |
| 公开(公告)号: | CN111488558B | 公开(公告)日: | 2022-07-22 |
| 发明(设计)人: | 马昊玉;刘忠正;胡育辉;李文豪;杨超 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/12 |
| 代理公司: | 华进联合专利商标代理有限公司 44224 | 代理人: | 董慧;关志琨 |
| 地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 脚本 保护 方法 装置 计算机 可读 存储 介质 设备 | ||
本申请涉及一种脚本保护方法、装置、计算机可读存储介质和计算机设备,所述方法包括:获取原始脚本,并确定所述原始脚本中的流程控制节点;根据所述第一执行条件,对所述原始脚本中的流程控制节点进行代码混淆,得到流程混淆节点;生成受保护脚本;所述受保护脚本包括所述流程混淆节点。本申请提供的方案,可以在保证脚本中各个流程控制节点的控制逻辑不发生变化的同时,提升了脚本的防篡改能力和抗分析能力,更有效地对脚本进行保护。
技术领域
本申请涉及信息安全技术领域,特别是涉及一种脚本保护方法、装置、计算机可读存储介质和计算机设备。
背景技术
目前,软件开发商主要依赖于代码混淆技术对软件产品进行保护,尤其对于可以反编译的JavaScript(一种脚本语言)而言,更需要通过有效的代码混淆技术进行保护。
代码混淆技术的主要目的在于让代码难于阅读,提升代码阅读成本和篡改难度,同时也可以提升了代码逆向解析的难度,以防止软件被篡改和非法反编译。
较为主流的代码混淆技术中,主要是对脚本中的代码内容进行简单的内容替换或者插入多余的控制流程。然而,上述的代码混淆方式存在着无法有效保护脚本的问题。
发明内容
基于此,有必要针对无法有效保护脚本的技术问题,提供一种脚本保护方法、装置、计算机可读存储介质和计算机设备。
一种脚本保护方法,包括:
获取原始脚本,并确定所述原始脚本中的流程控制节点;所述流程控制节点记录有第一执行条件;所述流程控制节点用于在所述流程控制节点的输入变量符合所述第一执行条件时执行流程跳转;
根据所述第一执行条件,对所述原始脚本中的流程控制节点进行代码混淆,得到流程混淆节点;所述流程混淆节点用于对根据所述流程混淆节点的代码内容进行校验所得到的校验值进行考拉兹运算,并输出考拉兹序列;所述流程混淆节点记录有第二执行条件;所述流程混淆节点还用于根据所述考拉兹序列更新所述第二执行条件,直至所述第二执行条件与所述第一执行条件等价;所述流程混淆节点用于在所述流程混淆节点的输入变量符合所述第二执行条件时执行流程跳转;
生成受保护脚本;所述受保护脚本包括所述流程混淆节点;所述受保护脚本用于根据所述流程混淆节点输出的考拉兹序列确定待跳转流程节点,并从所述流程混淆节点跳转至所述待跳转流程节点;所述受保护脚本还用于当无法根据所述考拉兹序列确定所述待跳转流程节点时执行脚本自我保护流程。
一种脚本保护方法,包括:
获取受保护脚本;所述受保护脚本包括流程混淆节点;所述流程混淆节点记录有执行条件;所述流程混淆节点用于在所述流程混淆节点的输入变量符合所述执行条件时执行流程跳转;
在执行所述流程混淆节点的代码内容时,对所述流程混淆节点的代码内容进行校验,得到校验值;
对所述校验值进行考拉兹运算,得到考拉兹序列,并根据所述考拉兹序列更新所述执行条件;
当所述流程混淆节点的输入变量符合更新后的所述执行条件、且根据所述考拉兹序列得到待跳转流程节点时,从所述流程混淆节点跳转至所述待跳转流程节点,并执行所述待跳转流程节点的代码内容;
当所述流程混淆节点的输入变量符合更新后的所述执行条件、且无法根据所述考拉兹序列得到待跳转流程节点时,执行脚本自我保护流程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010269363.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多节点式的移动教育平台系统
- 下一篇:一种测试方法及装置





