JS逆向:AST还原极验混淆JS实战
本⽂仅供学习交流使⽤,请勿⽤于商业⽤途或不正当⾏为
如果侵犯到贵公司的隐私或权益,请联系我⽴即删除
AST是抽象语法树,名字感觉很⾼级,其实也不⽤怕,可以简单理解为是将JS代码归类后的JSON,并且提供了很多⽅法给你对这个JSON 进⾏增删改查。
学习⼀个新东西,⾸先⼀定要搞清楚它有什么⽤,都不知道有啥⽤,学习它⼲啥,对吧
作为⼀个爬⾍攻城狮,JS逆向也是家常便饭了,JS逆向经常会遇到各种混淆过后的代码,极其难以阅读,这时候就可以使⽤AST对这些混淆代码进⾏⼀定的还原处理,得到⼀个相对容易阅读的JS代码,⽅便我们进⾏JS分析。
阅读本⽂需要有⼀点AST的基础,不要害怕,只需要稍微学习⼀点AST知识就⾏了,并不需要掌握AST的全部知识才能看得懂,不过最起码要对AST定位节点有⼀点认识,关于AST的学习⼤家肯定蔡⽼板啊
相信只要能认真阅读完本⽂内容,理解其中的概念,就能对AST还原混淆代码有⼀点点感觉了,并会发现AST其实也不是那么难。js合并两个数组
本次反混淆的是下⾯这个⽂件
st/static/js/fullpage.8.9.5.js复制代码
保存到本地,收缩⼀下代码看看整体结构
简单看下这⼏个function
嗯, 啥也看不懂…
别慌,静下⼼来,⼀点⼀点分析,⼀点⼀点解决!
观察代码发现⾥有很多地⽅调⽤了AJgjJ.DAi,搜索出515个匹配结果,如下图
在匹配结果中有两类调⽤,如上图红框标⽰的
第⼀个:带括号的AJgjJ.DAi(79); 暂时不知道是在⼲啥;
第⼆个,不带括号的AJgjJ.DAi,可以理解为
mZtVWz = ['qhicV'].concat(AJgjJ.DAi)复制代码
concat()是合并数组的作⽤
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论