该js位于slide7.8.*
那个js
里面
作用是滑动滑块提交轨迹,并返回是否通过验证
快速定位到入口
由于这里和上一篇位于fullpage
里一样,就不再赘述具体定位过程了
呦呵。 有没有感觉很熟悉
是的,就是这
简要分析
var s = n[sKmJ(766)]();
var u = ee[rndd(365)](me[sKmJ(57)](o), n[sKmJ(753)]());
var _ = l[sKmJ(729)](u);
w = _ + s
s
分析
进入函数,发现,也是判断了时候有r
解混淆一下,
new K()["encrypt"](t[MIDa(753)](e))
ue()
在上面调了s4
和上一篇生成s
方式一样
生成随机数完之后再抠new K()["encrypt"]
u
值分析
var u = ee[rndd(365)](me[sKmJ(57)](o), n[sKmJ(753)]());
大致解混淆一下
var u = ee["encrypt"](JSON.stringify(o), n["qNfX"]());
me[sKmJ(57)](o)
这个参数,实际是JSON.stringify(o)
再看第二个参数
好熟悉,这个不是刚刚偶遇那个吗
回头看第一个参数里面
注意到里面有一堆时间戳,有个rp
, userresponse
, aa
, imgload
挨个解决
userresponse
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/45e17a961049f7241f46bbdc940493d5.png)
userresponse: U(e, i[rndd(189)]),
得知i[rndd(189)]
是challenge
e
和t
都是传进来的
在分析`o``那个对象后,猜测31应该是滑动距离,
t
也就是aa
跟踪堆栈
里面三个参数不说了,一个轨迹,一个数组,一个s
,都是网络请求返回的数据
f
就是处理后的轨迹,
r["JPiA"]["nStF"](r[LsRU(1063)][LsRU(1047)]())
函数折叠下所有层次
第一句有效代码应该是var t = e(this[LHLJ(329)]);但是那里断不下来,在他下一行断
可以看到他把数组精简了,原数组是这样的
猜测应该是x,y ,timestamp
,然后返回来各段的加密,并以"!!"分割,然后经过
进行了删减
这次滑动的特别短,可见此处的c
是滑动距离
rp
o[sKmJ(711)] = Q(i[rndd(173)] + i[sKmJ(189)][sKmJ(141)](0, 32) + o[sKmJ(791)]);
大致解混淆一下
o.rp = Q(gt + challenge.slice(0,32) + passtime)
这里没啥可讲的了。
再就是测试的时候里面画布的时间戳不能固定,自己找规律,改一下,这个简单
_
参数
var _ = l[sKmJ(729)](u);
解混淆一下
var _ = l["TYCF"](u);
直接导出就行
轨迹的话自己写写就行