数美滑块参数生成介绍¶
本文只介绍比较重要的参数及其对应位置,非保姆级教程。可以结合房天下滑块等教程来参考。
本文档前提说明
- 此站点的验证码验证较简单,这里只介绍比较有代表性的一个参数生成方法;
- 验证码轨迹相关的生成方法会在另一个文章中统一介绍,以后考虑添加,这里略过。
1. 抓包获取验证全流程¶
抓包获取滑块相关的所有请求,用来得出其验证的流程,再分析某些重要请求中的参数生成方法。
其中,过滤请求规则示例为:
由以上的抓包结果图,再自己抓下包查看其详情就可以轻易的伪造出前三个请求包。验证包的请求比较重要,其中的参数包含前几个请求的结果 organization、rid 等,由轨迹数组生成的 zs,由验证花费时间生成的 ub,由滑块拖动距离生成的 tq。具体的请求详情如下:
注:此请求多抓几次,通过文本对比等工具确定哪些参数变动,优先处理变动的参数。
2. 参数生成定位¶
定位的方式多种多样,老几样,自己挑个使用顺手的。就直接 xhr 断点,或者直接点验证包进入 js 来堆栈调试即可。然后即可定位到具体位置:
由于参数多,这里只以 tq 为例,其它参数生成规则一样。由以上可知,tq 是由滑块位移,进入 this[_0x53d907(0x1da)] 方法中:
问题来了,目前有两种方式来开发:一种是 补环境,一种是直接用 py 相关库实现。两种方式我都试了,都比较简单,推荐直接使用
py
库实现即可,性能损耗最小且方便。
2.1.轨迹相关¶
由上个步骤可知,nm
为轨迹数组参数生成,tq
由滑动距离参数生成,自己调试下,调试至此就很明了了。
这里说下轨迹相关注意事项:
- 轨迹滑动长度的参数要与轨迹数组参数的末位坐标
x
轴信息一致,轨迹数组中的时间参数和滑动通过时间参数每次随机生成即可; - 本文的说明可能一段时间后与官网的
js
内容不一致,或请求包参数有些许变动。根据我的观察,其换汤不换要,主逻辑没有变过; - 图片识别时图片为
600 * 300
,调试或网站检查可知,传参中的格式为300 * 150
,所以滑动距离最终值要根据图片识别的值要缩小一半,自己注意下,看自己怎么处理; - 轨迹生成方式以后单开一篇介绍。
3. 实现方法¶
3.1. 补环境实现¶
直接使用补环境框架测试,会提示上图的
__key
没有。不解释了,直接告诉你位置吧:
其它的参数也很简单,就是稍微有点坑。比如请求生成的滑块图和真实图有缩放等,自己踩踩就知道了。放个通过补环境调试后,某些参数
py
测试运行的结果:
3.2. py 库直接实现¶
其实由 参数生成定位 的分析,聪明的你就会知道这就是未魔改的
des
,剩下的就不用说了吧。
4. 总结¶
贴个运行图:
如果去年有接触数美的话,你可知它变化了一点点,但总体逻辑一致。在遇到加密或编码之类的情况时,要善用
js
调试工具来佐证是否魔改之类的,可大幅减少工作量。
完结。
官网又新增和修改了部分参数,但是换汤不换药!再贴一个成功运行图,顺便说下注意事项:
- 如果运行突然失效,其实主要注意加密配置的参数是否改变;
- 查看验证包提交的参数是否新增和修改。
再次完结。