[发明专利]一种基于语法树AST编辑实现的JavaScript混淆方法在审
申请号: | 202111465057.5 | 申请日: | 2021-12-03 |
公开(公告)号: | CN114253549A | 公开(公告)日: | 2022-03-29 |
发明(设计)人: | 胡云锋 | 申请(专利权)人: | 胡云锋 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 广东省畅欣知识产权代理事务所(普通合伙) 44631 | 代理人: | 齐军彩 |
地址: | 333000 江西省景德镇*** | 国省代码: | 江西;36 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 语法 ast 编辑 实现 javascript 混淆 方法 | ||
一种基于语法树AST编辑实现的JavaScript混淆方法,包括如下步骤:将JavaScript源代码压缩去除冗余代码,分析生成AST语法树;遍历AST语法树,将其中语法进行编辑转换;创建数组arrayA,并且提取AST语法树的字符串,通过特定算法转换成二维数组的数据字典;创建解码方法,将解码方法及随机冗余方法随机插入上一步数组arrayA中;创建自执行方法functionF,将二维数组arrayA当作arguments参数传入自执行方法functionF中,并将解码方法与自执行方法functionF组合生成新AST语法树;将原AST语法树中所有的字符串节点转换为解码方法functionH;将原AST语法树插入到新AST语法树,替换所有数字和变量,得到全新结构的新AST语法树;还原JavaScript代码来输出:将新AST语法树还原为JavaScript代码,去除空格换行压缩后输出得到混淆代码。
技术领域
本发明涉及计算机与通信技术领域,具体是一种基于语法树AST编辑实现的JavaScript混淆方法。
背景技术
JavaScript是在网站浏览器上运行的编程语言,主要是向使用HTML(超文本标记语言,Hyper Text Markup Language)和CSS(层叠样式表,Cascading Style Sheets)构建的网站添加,并起到实现各种页面动态效果的作用。例如,在网页上展示的轮播图样式和在咨询平台上输入的内容错误后显示的提示信息等这样的效果。另外针对商城网站里面购买商品时,使用购物车和费用估算也需要用到JavaScript。所以即使它不怎么明显,但依然是编码人员经常会用到的一种语言,JavaScript也是web前端开发中最重要的编程语言。
在web(World Wide Web,全球广域网,也称为万维网)系统发展早期,JavaScript在web系统中承担的职责并不多,只是简单的提交表单,JavaScript文件非常简单,也不需要任何的保护。
而在web应用越来越丰富的今天,伴随着浏览器性能和网速的提高,JavaScript承载了更多的工作,不少后端逻辑都在向前端转移,与此同时也让更多的不法分子有机可乘。在web模型中,JavaScript往往是不法分子的第一个突破口。知晓了前端逻辑,不法分子可以模拟成一个正常的用户来实施自己的恶意行为。所以,在很多登录、注册、支付、交易等等页面中,关键业务和风控系统依赖的JavaScript都不希望被人轻易的破解。
显而易见,我们需要保护我们的前端JavaScript代码安全。但由于JavaScript必须要下载代码在浏览器中解释执行的特性,要想绝对的保密是不可能的,我们要做的就是尽可能的增大破解的难度,让攻击者知难而退。
目前业内通常采用eval加密、代码压缩、代码混淆是三种方式保护代码安全;而其中“代码混淆”相对于其他两个更安全、更灵活。
代码混淆:JavaScript混淆器大致有两种正则(Regular Expression,常简写为regex、regexp或RE)替换和语法树(Abstract Syntax Tree,简写为AST)替换实现,正则替换实现成本低,但是效果也一般,适合对混淆要求不高的场景;AST语法树替换实现成本较高,但是更灵活,而且更安全。基于AST语法树层面的混淆器其实类似于编译器,基本原理和编译器类似,通过重命名局部变量、移除代码空白在相同语义的情况下压缩代码,变量替换。
虽然“代码混淆”相对于其他两个更安全、更灵活,但还有较大的缺点。常见的代码混淆通过重命名局部变量、常量替换和简单的string转码等方法混淆,但代码中还是会出现属性值及对象方法名/属性名等字符串出现,对于有经验的攻击者很容易猜出代码及涉及的功能,从而进行破解。
基于此,本发明提供了一种基于语法树AST编辑实现的JavaScript混淆方法,以解决上述问题。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于胡云锋,未经胡云锋许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111465057.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多功能不锈钢卷板机
- 下一篇:一种治筋骨痛的祛风散寒药物及其制备方法