跳转至

数美滑块参数生成介绍

本文只介绍比较重要的参数及其对应位置,非保姆级教程。可以结合房天下滑块等教程来参考。

本文档前提说明

  • 此站点的验证码验证较简单,这里只介绍比较有代表性的一个参数生成方法;
  • 验证码轨迹相关的生成方法会在另一个文章中统一介绍,以后考虑添加,这里略过。

1. 抓包获取验证全流程

抓包获取滑块相关的所有请求,用来得出其验证的流程,再分析某些重要请求中的参数生成方法。

其中,过滤请求规则示例为:

-.css -.js -.png -.mp3 -.gif -.jpg -.svg -.pingfore.qq.com -.qiye.qq.com -.baidu.com -.360.cn -.qidian.qq.com

image-20220228152202343

由以上的抓包结果图,再自己抓下包查看其详情就可以轻易的伪造出前三个请求包。验证包的请求比较重要,其中的参数包含前几个请求的结果 organizationrid 等,由轨迹数组生成的 zs,由验证花费时间生成的 ub,由滑块拖动距离生成的 tq。具体的请求详情如下:

image-20220228153617692

注:此请求多抓几次,通过文本对比等工具确定哪些参数变动,优先处理变动的参数。

2. 参数生成定位

定位的方式多种多样,老几样,自己挑个使用顺手的。就直接 xhr 断点,或者直接点验证包进入 js 来堆栈调试即可。然后即可定位到具体位置:

image-20220228155909481

由于参数多,这里只以 tq 为例,其它参数生成规则一样。由以上可知,tq 是由滑块位移,进入 this[_0x53d907(0x1da)] 方法中:

image-20220228160618969

问题来了,目前有两种方式来开发:一种是 补环境,一种是直接用 py 相关库实现。两种方式我都试了,都比较简单,推荐直接使用 py 库实现即可,性能损耗最小且方便。

2.1.轨迹相关

由上个步骤可知,nm 为轨迹数组参数生成,tq 由滑动距离参数生成,自己调试下,调试至此就很明了了。

这里说下轨迹相关注意事项:
  1. 轨迹滑动长度的参数要与轨迹数组参数的末位坐标 x 轴信息一致,轨迹数组中的时间参数和滑动通过时间参数每次随机生成即可;
  2. 本文的说明可能一段时间后与官网的 js 内容不一致,或请求包参数有些许变动。根据我的观察,其换汤不换要,主逻辑没有变过;
  3. 图片识别时图片为 600 * 300,调试或网站检查可知,传参中的格式为 300 * 150,所以滑动距离最终值要根据图片识别的值要缩小一半,自己注意下,看自己怎么处理;
  4. 轨迹生成方式以后单开一篇介绍。

3. 实现方法

3.1. 补环境实现

直接使用补环境框架测试,会提示上图的 __key 没有。不解释了,直接告诉你位置吧:

image-20220228161600318

其它的参数也很简单,就是稍微有点坑。比如请求生成的滑块图和真实图有缩放等,自己踩踩就知道了。放个通过补环境调试后,某些参数 py 测试运行的结果:

image-20220228162548708

3.2. py 库直接实现

其实由 参数生成定位 的分析,聪明的你就会知道这就是未魔改的 des,剩下的就不用说了吧。

image-20220301091942297

4. 总结

贴个运行图:

image-20220228143804501

如果去年有接触数美的话,你可知它变化了一点点,但总体逻辑一致。在遇到加密或编码之类的情况时,要善用 js 调试工具来佐证是否魔改之类的,可大幅减少工作量。

完结。

官网又新增和修改了部分参数,但是换汤不换药!再贴一个成功运行图,顺便说下注意事项:

  • 如果运行突然失效,其实主要注意加密配置的参数是否改变;
  • 查看验证包提交的参数是否新增和修改。

image-20220328180108562

再次完结。

评论

回到页面顶部