[发明专利]一种基于语法树AST编辑实现的JavaScript混淆方法在审
申请号: | 202111465057.5 | 申请日: | 2021-12-03 |
公开(公告)号: | CN114253549A | 公开(公告)日: | 2022-03-29 |
发明(设计)人: | 胡云锋 | 申请(专利权)人: | 胡云锋 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 广东省畅欣知识产权代理事务所(普通合伙) 44631 | 代理人: | 齐军彩 |
地址: | 333000 江西省景德镇*** | 国省代码: | 江西;36 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 语法 ast 编辑 实现 javascript 混淆 方法 | ||
1.一种基于语法树AST编辑实现的JavaScript混淆方法,包括如下步骤:
S1、分析生成AST语法树:将JavaScript源代码压缩去除冗余代码,分析生成AST语法树;
S2、将语法编辑转换:遍历AST语法树,将其中语法进行编辑转换;
S3、创建数组arrayA,并且提取AST语法树的字符串,通过特定算法转换成二维数组的数据字典;
S4、创建解码方法,将解码方法及随机冗余方法随机插入上一步数组arrayA中;
S5、创建自执行方法functionF,将二维数组arrayA当作arguments参数传入自执行方法functionF中,并将解码方法与自执行方法functionF组合生成新AST语法树;
S6、转换字符串节点:将原AST语法树中所有的字符串节点转换为解码方法functionH;
S7、将原AST语法树插入到新AST语法树,替换所有数字和变量,得到全新结构的新AST语法树;
S8、还原JavaScript代码进行输出:将新AST语法树还原为JavaScript代码,去除空格换行压缩后输出。
2.根据权利要求1所述的一种基于语法树AST编辑实现的JavaScript混淆方法,其特征在于,所述步骤S2中编辑转换所涉及到的语法包括:Object对象定义、window全局对象以及属性和方法名为obj.attr的语法。
3.根据权利要求2所述的一种基于语法树AST编辑实现的JavaScript混淆方法,其特征在于,所述各语法的编辑转换方式为:
所述定义Object对象语法转换成自执行方法,生成(function(obj){return obj[“attr”]=0,obj;}({})语法;
定义局部变量通过this指向window对象,将代码块中所有window全局对象全部转换为window[“attr”]语法;
所述所有属性和方法名obj.attr的语法转换成obj[“attr”]语法。
4.根据权利要求1所述的一种基于语法树AST编辑实现的JavaScript混淆方法,其特征在于,所述步骤S3中提取字符串的方式为:
遍历AST语法树,将AST语法树中所有字符串存入数组arrayA中,如果该字符串存在于arrayA则记录字符串在arrayA的位置,不存在则将字符串追加到arrayA再记录位置;
所述步骤S3中通过特定算法转换成二维数组的详细方式如下:
将数组arrayA中所有字符串通过split(‘’)方法转换为打散成二维数组;
将数组arrayA每个字符通过charCodeAt方法转换为数字,将原字符长度与数字进行位运算;
使用Array.prototype.concat.apply方法将二维数组arrayA降维并记录原字符串在数组中的起始位置,生成一个随机数randomB再次将数组中所有数字与随机数randomB进行位运算。
5.根据权利要求1所述的一种基于语法树AST编辑实现的JavaScript混淆方法,其特征在于,所述步骤S4中所创建的解码方法包括:
数组提取方法functionC、数组降维方法functionD、位运算方法functionE。
6.根据权利要求5所述的一种基于语法树AST编辑实现的JavaScript混淆方法,其特征在于,
所述数组提取方法functionC作用是遍历数组arrayA,通过typeof==“function”将其中的非数组对象过滤掉并返回全部数字数组;
所述数组降维方法functionD将方法functionC返回的二维数组降维为一维数组方便根据起始坐标和结束坐标截取数组;
所述位移运算方法functionE作用是根据之前根据起始位置的差值加随机数randomB分别与数组中的数字位运算得到原始字符串值,然后使用String.formCharCode()方法还原成原始字符。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于胡云锋,未经胡云锋许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111465057.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多功能不锈钢卷板机
- 下一篇:一种治筋骨痛的祛风散寒药物及其制备方法