某盾分析学习data(二)
本帖最后由 #sky# 于 2022-5-10 20:05 编辑## 某盾分析学习data(二)
上篇 (https://www.52pojie.cn/thread-1634242-1-1.html)
### 1.data参数分析
在js中搜索'data',下断点
![在这里插入图片描述](https://img-blog.csdnimg.cn/cebf6b511f154c55b4d3e3130346feeb.png)
一共6处,全部打上断点。滑动滑块。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c20ffe5a592549c78a28e2ad25fd2c7a.png)
data 由 d, m, p, ext组成
d: 长度为50的数组使用 : 进行拼接,数组中是密文
m: 空
p: 一串密文
ext: 也是一串密文
![在这里插入图片描述](https://img-blog.csdnimg.cn/f4d50dca6bbd46878981c0706ea30fd4.png)
最后生成了我们需要的data。接下来一个参数一个参数进行分析。
首先看d的生成
![在这里插入图片描述](https://img-blog.csdnimg.cn/1340646841e34e399d3ddc7e41ed4bde.png)
d是由这个数组进行拼接,感觉像是滑动轨迹进行了加密。这里_0x5460f9数组进行拼接,然后使用_0x37633a()进行加密,先看数组是怎么生成的,是由var _0x5460f9 = _0x3b2241(this, _0x306976) 这一行获取的, this 是一串密文的数组,长度大于50
![在这里插入图片描述](https://img-blog.csdnimg.cn/76bf775262c64b8eb68793bde78b586b.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/3483cf1969704cca9ce6a19031cbcacc.png)
第二个参数是50,这里就是将this数组进行分割,前50进行赋值操作。继续看this是怎么来的,可以利用上一篇文中的方法去修改一下js,让他更方便分析。
![在这里插入图片描述](https://img-blog.csdnimg.cn/5fe07a4a10e84a92989208391eb2f6a7.png)
看这个单词,原来这个密文数组就是轨迹加密后的样子。接下来找他怎么生成的吧。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6991e6f122cb4356902585a35e9fff2a.png)
处理之后的js果然看着很舒服找到4处this["traceData"]["push"] 都打下断点 ,开始滑动滑块,
![在这里插入图片描述](https://img-blog.csdnimg.cn/a9aff28dc4274953be04dd493b97c702.png)
这个数组push的第一个字符串是_0x5e65a4, _0x5e65a4 是由函数 _0x3de818()生成的,里面有两个参数
![在这里插入图片描述](https://img-blog.csdnimg.cn/71952841a399491ba0c17f01b735c36a.png)
第一个参数是获取验证码的请求返回的,第二个应该就是轨迹了
clientX返回当事件被触发时鼠标指针相对于浏览器页面(或客户区)的水平坐标
clientY返回当事件被触发时鼠标指针向对于浏览器页面(客户区)的垂直坐标
dragX = clientX - startX就是鼠标移动的距离
(_0x3d0af9["dragX"] < 0x0 ? 0x0 : _0x3d0af9["dragX"]), Math["round"](_0x3d0af9['clientY'] - _0x3d0af9["startY"]), _0x3b2241["now"]() - _0x3d0af9["beginTime"]] + ''
经过这个计算最后获得了 '4,0,188593' 这样的结果 'dragX, dragY, 时间差',由于这里是每动一下,就会加密一次,所以看不到完整的轨迹,这个时候就可以使用reres替换js,打印轨迹,
刷新浏览器,滑动滑块,就可以看到我们滑动的轨迹了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/b731fb911c634667bb770c8897c69288.png)
接下来看加密函数_0x3de818,点进去打断点
![在这里插入图片描述](https://img-blog.csdnimg.cn/94ee7e4147fe4beeb5491115cb084af2.png)
看起来和上篇cb获取类似,开始扣代码,然后生成一下。
浏览器中的结果vs 我生成的
![在这里插入图片描述](https://img-blog.csdnimg.cn/3d6967fb7f9c4d14bb39515862fd4aa6.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/97463f8dc65b471fa54fea5af8bc28ed.png)
完全一样,那轨迹加密到这里就完事了。
然后就是_0x37633a() 这个函数也是扣一下代码就可以了,这里不在多说。
接下来看p的生成 p = _0x4334ad
![在这里插入图片描述](https://img-blog.csdnimg.cn/d56fe9a831164ea2ac634ba2b9e3ee36.png)
_0x37633()加密 参数为 _0x3de818(_0xd7f468, parseInt(this["$jigsaw"]["style"]["left"], 0xa) / this["width"] * 0x64 + '') 同样也是照着扣代码。这里判断了缺口距离。
接下来看ext的生成
![它是由 鼠标](https://img-blog.csdnimg.cn/e302ad8bc5be44139ff1f32c46759a05.png)
它是由鼠标按下次数+ ’,' + 轨迹数组长度,进行加密,照着扣代码就可以了。
## 2.总结
data 其实就是轨迹相关的加密
js还原相关脚本 https://github.com/dlb-shy/js_spider/tree/main/dun163
今天的分享就到这里,仅供学习,若有侵权,请联系我删除,希望大家一键三连支持一下。 谢谢分享 学习了感谢哦 这是某盾里面的代码啊?怎么感觉是javascript?不是网页的吗? 感谢分享源代码,开来学习一下 你好 楼主 我想问下同盾你能过吗 重酬。。。
页:
[1]