前言
话不多说,上次易盾未破解的参数最终篇,因为写个博客详单与重新再追一遍,今天抽了空算是交差了。
上篇文章某盾验证加密参数分析——fp参数(一)
好了开始分析
一、cb参数
这个其实很简单,按理来说应该是跟上一篇一起的,当时偷了个懒,不细讲了,直接看截图吧
直接追进去
继续追X.uuid和P进行了
P方法就是B
老样子,nodejs中调试的时候缺啥补啥,最终可以得出结果
二、data参数
我们滑动过后会出现下方这张图的几个参数
token是上一步请求成功之后返回的,actoken是系统返回的,主要是data参数,是个字典,我这里直接在他调用的几个栈里搜的ext:,然后找到了这个位置
那就仔细看这几个参数怎么生成的呗,先看d里的i,在上方可以直接看到,我们看看i中的this.traceData,直接在当前的js文件中全局搜索就行,我们可以找到他的位置
有一段我没截出来,定义this.tranceData的地方
this.traceData = []
结合上图我们可以看出是加密过后压入数组的,那我们先将f的加密方式捣鼓出来,u就是token,是上次返回的。
[Math.round(n.dragX < 0 ? 0 : n.dragX), Math.round(n.clientY - n.startY), a.now() - n.beginTime]
这个就是轨迹移动的每次坐标了
然后追下p方法
扣代码吧,你的轨迹数组里的坐标肯定会有很多,我们先确定代码扣得对不对,先用一个坐标试一下
跟我上上涨图控制台打印出来的加密是一样的,那说明js没扣错。那我们再写个循环,循环加密后压入
this.traceData中就行了。
接着往下看,a.sample追进去
完美,继续看,u可以写死50(可以猜猜这50是什么),n是token不用管,p方法我们上面已经知道了,h呢?追进去其实就是cb参数中用到的B方法,那还剩什么没解决。this.$jigsaw.style.left这个是什么呢,其实就是滑块距离左侧的长度,this.width就是图片的长度。
得出结果
{"d":"hJIdduysASAoSbgaxoWblGTZ0QqQNUy1eVqaYq85BDuRsLMGOdxvP\\H1VmoKkNMxC6Ez818heU6AiRQq4gsNqAUizxoAswd++4VxYn2KTGM2CtfTUO7mMgscezeHcFZeGowKu29WD14fdEz0aigdNuOG\\Hj/cicVa8hpuYuH8qIbttdFQYdGmwZnRFeGSisN\\SC7N6FSRb6fGHpDuKWn/Vi/HYUr6E5fiqizlVxdIUqQ\\TQ+7hVKt+SKbKzuXfyN6di8Ygd1oPgtk0D4JQ5Zl6Rhr4G/maA5Q0V/ZhQAPWA3",
"m":"",
"p":"Na5WJjLpPvnnn6pTU+ZgOhnl1sw4fB\\fO0HJVc33",
"ext":"6UIkcUqk9PoKePeo2tmIXJM2aOQml\\ED"}
总结
网易易盾算是结束了,js难度一般,因为难的还是在轨迹生成上,如何生成可行的轨迹,js总归就是那样,扣与不扣它就在那里,现在验证码千奇百怪爬虫难度也越来越高,最近新版的web版抖音也是凭空出世,多少爬虫踏上了破解的征途,知识是学不完的,努力总会有收获。
公众号:python小丑鱼
PS:回复抖音_signature,可以去网盘中获取jsdom版本的抖音分享页加密破解的代码,主要是给大家拿来应急用的。
再会,respect!