[发明专利]一种可自定义规则的JavaScript代码混淆方法和系统在审
| 申请号: | 202110230043.9 | 申请日: | 2021-03-02 |
| 公开(公告)号: | CN113010857A | 公开(公告)日: | 2021-06-22 |
| 发明(设计)人: | 肖东爽;肖铮;陈树华 | 申请(专利权)人: | 北京顶象技术有限公司 |
| 主分类号: | G06F21/14 | 分类号: | G06F21/14 |
| 代理公司: | 北京云科知识产权代理事务所(特殊普通合伙) 11483 | 代理人: | 张飙 |
| 地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 自定义 规则 javascript 代码 混淆 方法 系统 | ||
1.一种自定义规则的JavaScript代码混淆方法,其特征在于,包括以下步骤:
S1、将源代码通过语法分析工具生成AST;
S2、将AST经过混淆引擎处理,生成混淆后的AST,所述混淆引擎可进行自定义混淆规则;
S3、将混淆后的AST还原为JavaScript代码;
S4、对混淆后的JavaScript代码进行压缩,得到最终生成的代码。
2.根据权利要求1所述的自定义规则的JavaScript代码混淆方法,其特征在于,所述混淆引擎内具有默认的混淆流程,包括依次进行的五条混淆规则,分别为:
源码转换,用于将代码中的数字、正则表达式等转换为字符串的表示;
字符串加密,用于将代码中的字符串用内置的多个加密函数随机加密,同时在源代码中插入解密代码,在运行时动态解密;
字符串拆分,用于将代码中的字符串进行拆分,将拆分后的字符串分散到多个作用域中;
函数打乱,用于将代码中的函数随机进行洗牌,打乱原有函数的声明顺序;
常量提取,将代码中的常量,随机提取到多个数组中,在实际引用的时候,改为数组下标的引用。
3.根据权利要求1或2所述的自定义规则的JavaScript代码混淆方法,其特征在于,在步骤S2中,自定义混淆规则时,可以编写自己的混淆规则,编写的流程如下:
A,在混淆之前可以插入规则,提供输入为前一条规则处理后的AST;
B,使用方对AST进行自定义的处理;
C,返回处理后的AST交由下一条规则使用。
4.根据权利要求3所述的自定义规则的JavaScript代码混淆方法,其特征在于,所述自定义规则包括如下类型:
自由组合默认规则、指定混淆强度、插入自定义的新规则,以上各类型可同时或选择性组合使用。
5.根据权利要求4所述的自定义规则的JavaScript代码混淆方法,其特征在于,所述指定混淆强度,将各个可调节强度的规则分别设定混淆强度分为强、中、弱三级可选,或者设置为无级自由调节形式进行选择。
6.一种自定义规则的JavaScript代码混淆系统,其特征在于,包括以下单元:
语法分析单元,用于将源代码通过语法分析工具生成AST;
混淆引擎,用于将AST经过本工具的混淆引擎处理,生成混淆后的AST具有多条内置复杂混淆规则,支持自定义混淆规则,使得每次混淆的结果有随机性;
语法还原单元,用于将混淆后的AST还原为JavaScript代码;
代码压缩单元,用于对混淆后的JavaScript代码进行压缩,得到最终生成的代码。
7.根据权利要求6所述的自定义规则的JavaScript代码混淆系统,其特征在于,所述混淆引擎内具有默认的混淆流程,包括依次进行的五条混淆规则,分别为:
源码转换,用于将代码中的数字、正则表达式等转换为字符串的表示;
字符串加密,用于将代码中的字符串用内置的多个加密函数随机加密,同时在源代码中插入解密代码,在运行时动态解密;
字符串拆分,用于将代码中的字符串进行拆分,将拆分后的字符串分散到多个作用域中;
函数打乱,用于将代码中的函数随机进行洗牌,打乱原有函数的声明顺序;
常量提取,将代码中的常量,随机提取到多个数组中,在实际引用的时候,改为数组下标的引用。
8.根据权利要求6或7所述的自定义规则的JavaScript代码混淆系统,其特征在于,混淆引擎的自定义混淆规则中,可以编写自己的混淆规则,编写的流程如下:
A,在混淆之前可以插入规则,提供输入为前一条规则处理后的AST;
B,使用方对AST进行自定义的处理;
C,返回处理后的AST交由下一条规则使用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京顶象技术有限公司,未经北京顶象技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110230043.9/1.html,转载请声明来源钻瓜专利网。





