一、js混淆了解
1、为什么要混淆?
-
js混淆的作用
:为了防止爬虫通过分析js内容,轻易的还原出网站的加密逻辑,而做出的安全防御手段之一,常常将一个逻辑简单的可能十几行算法代码思路
,通过变量混淆替换、增加冗余无效代码、增加无限debugger反调试功能、增加多层的套娃式if~else代码、以及埋陷阱等混淆成几千行的js代码
,给人第一印象难读,对入门分析者造成恐惧心理
- 如图,我们常见的ob混淆就是这个原理,左侧也就5行的代码,经过ob混淆这么一个操作,就有了右侧
很多_0x
开头的字符串/函数混淆
的代码,逻辑调用分析难度增加,是反爬的常用手段
2、常见的混淆模样(ob/sojson/jsfuck/AAencode/jjEncode/eval)
二、AST初步认识
-
ast 又称 抽象语法树, 比如将js代码已树节点的形式展现,有点类似html源码的各个标签父子关系,关于ast的介绍可以进一步看这篇文章
-
ast的作用
:ast作用主要是将混淆的难读的js
还原成可读性高的js
,对整个js的逻辑不做任何改变,你可以理解为化繁为简
,可见性的瘦身,也许网页上是1w多行的混淆代码,瘦身后只有不到1千行;脱混淆后要注意替换到网页试试看能否能用
-
初次入门尝试体验案例,一般是打开可视化显示AST结构工具分析节点;处理逻辑:就是一颗树,不停的找分支
,确定当前分支的各个属性特性,即定位要改的节点就是找type,然后对该type节点操作即可
,你可以简单理解为html里面找到了父标签然后对子标签进行操作,理解为xpath或者css选择器的逻辑也不为过
三、解混淆常用的方法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)