某网站js混淆结构简单分析

2020-02-25 10:29:51 浏览数 (1)

大家好,今天我们来讲一个js混淆的手工分析还原思路。

它长这样

经过测试,他直接扣出来也能跑,不过我们看下他这个奇怪的混淆思路,我们分析然后记下来,方便我们以后写混淆工具的时候作为其中一种方式,为我们所用。

因为他是一个闭包,所以我们直接看最后

最后会执行一个V函数然后第一个传一堆字符乱码,第二个很明显传了一堆浏览器自带的对象函数,这种混淆属实有点问题,把关键函数这么玩我们直接替换掉就ok。

我们分析一下他这个v入口在哪里

把这个闭包拷贝出来然后执行

然后点这个,就可以定位到v函数位置

跳到了这里,这里就是V的入口,至于他怎么解密那个字符串乱码我们不关心,暂时代码能跑没什么暗桩不需要分析,那我们看下他开头的结构

可以看到V申明是在这里,我们看下,首先从中间开始分析

我们可以通过括号来确定范围,鼠标单击一下谷歌这个开发者工具会高亮对应的

实际上js这个()里面的并不是{}作用域他只会返回最后一个对象,所以

这一大段只返回i这个函数

通过上个规则我们知道()中间的他只会返回最后一个(1,2,3,4)只会返回4也就是最后一个,我们接下来看下一个s

s是空数组,下一个

他所有的都是这个规律就不一一看了,我们知道,()括号无论有多少个只会返回一个,我们看开头

鼠标点第一个看下他结尾

他最后是一个Z也就是说V这个函数,这一大段执行完会返回一个Z

那我们看一下Z这个函数在哪里

Z是这里,返回最后一个是这里,是不是很眼熟

我们开头直接定位到的就是这里,这样我们就完整的分析了他这个混淆,现在看来是不是没那么难了。

0 人点赞