抖音验证码滑动轨迹原理(很难审核通过)

python 复制代码
    dragTrack = [
        {'x': 53, 'y': 317, 'width': 1, 'time': 1766388851812, 't': 0, 'relative_time': 24},
        {'x': 55, 'y': 317, 'width': 3, 'time': 1766388851817, 't': 0, 'relative_time': 29},
        {'x': 58, 'y': 317, 'width': 6, 'time': 1766388851825, 't': 0, 'relative_time': 37},
        {'x': 59, 'y': 317, 'width': 7, 'time': 1766388851833, 't': 0, 'relative_time': 45},
        {'x': 61, 'y': 317, 'width': 9, 'time': 1766388851841, 't': 0, 'relative_time': 53},
        {'x': 62, 'y': 317, 'width': 10, 'time': 1766388851849, 't': 0, 'relative_time': 61},
        {'x': 65, 'y': 318, 'width': 13, 'time': 1766388851857, 't': 0, 'relative_time': 69},
        {'x': 68, 'y': 318, 'width': 16, 'time': 1766388851866, 't': 0, 'relative_time': 78},
        {'x': 69, 'y': 319, 'width': 17, 'time': 1766388851873, 't': 0, 'relative_time': 85},
        {'x': 70, 'y': 319, 'width': 18, 'time': 1766388851881, 't': 0, 'relative_time': 93},
        {'x': 73, 'y': 319, 'width': 21, 'time': 1766388851889, 't': 0, 'relative_time': 101},
        {'x': 76, 'y': 320, 'width': 24, 'time': 1766388851896, 't': 0, 'relative_time': 108},
        {'x': 77, 'y': 320, 'width': 25, 'time': 1766388851905, 't': 0, 'relative_time': 117},
        {'x': 79, 'y': 320, 'width': 27, 'time': 1766388851915, 't': 0, 'relative_time': 127},
        {'x': 81, 'y': 320, 'width': 29, 'time': 1766388851921, 't': 0, 'relative_time': 133},
        {'x': 83, 'y': 321, 'width': 31, 'time': 1766388851929, 't': 0, 'relative_time': 141},
        {'x': 84, 'y': 321, 'width': 32, 'time': 1766388851949, 't': 0, 'relative_time': 161},
        {'x': 86, 'y': 322, 'width': 34, 'time': 1766388851953, 't': 0, 'relative_time': 165},
        {'x': 87, 'y': 322, 'width': 35, 'time': 1766388851963, 't': 0, 'relative_time': 175},
        {'x': 88, 'y': 322, 'width': 36, 'time': 1766388851969, 't': 0, 'relative_time': 181},
        {'x': 89, 'y': 323, 'width': 37, 'time': 1766388851985, 't': 0, 'relative_time': 197},
        {'x': 90, 'y': 323, 'width': 38, 'time': 1766388851996, 't': 0, 'relative_time': 208},
        {'x': 91, 'y': 323, 'width': 39, 'time': 1766388852001, 't': 0, 'relative_time': 213},
        {'x': 92, 'y': 324, 'width': 40, 'time': 1766388852014, 't': 0, 'relative_time': 226},
        {'x': 93, 'y': 324, 'width': 41, 'time': 1766388852019, 't': 0, 'relative_time': 231},
        {'x': 94, 'y': 324, 'width': 42, 'time': 1766388852026, 't': 0, 'relative_time': 238},
        {'x': 95, 'y': 324, 'width': 43, 'time': 1766388852033, 't': 0, 'relative_time': 245},
        {'x': 96, 'y': 324, 'width': 44, 'time': 1766388852041, 't': 0, 'relative_time': 253},
        {'x': 97, 'y': 324, 'width': 45, 'time': 1766388852049, 't': 0, 'relative_time': 261},
        {'x': 98, 'y': 324, 'width': 46, 'time': 1766388852057, 't': 0, 'relative_time': 269},
        {'x': 99, 'y': 324, 'width': 47, 'time': 1766388852065, 't': 0, 'relative_time': 277},
        {'x': 100, 'y': 325, 'width': 48, 'time': 1766388852073, 't': 0, 'relative_time': 285},
        {'x': 101, 'y': 325, 'width': 49, 'time': 1766388852082, 't': 0, 'relative_time': 294},
        {'x': 102, 'y': 325, 'width': 50, 'time': 1766388852101, 't': 0, 'relative_time': 313},
    ]
    moveTrack = [
        {'x': 61, 'y': 380, 'time': 1766388851388},
        {'x': 79, 'y': 359, 'time': 1766388851430},
        {'x': 78, 'y': 353, 'time': 1766388851466},
        {'x': 75, 'y': 352, 'time': 1766388851507},
        {'x': 74, 'y': 345, 'time': 1766388851548},
        {'x': 67, 'y': 335, 'time': 1766388851582},
        {'x': 61, 'y': 326, 'time': 1766388851616},
        {'x': 54, 'y': 320, 'time': 1766388851666},
        {'x': 52, 'y': 317, 'time': 1766388851705},
        {'x': 53, 'y': 317, 'time': 1766388851812},
        {'x': 62, 'y': 317, 'time': 1766388851848},
        {'x': 73, 'y': 319, 'time': 1766388851889},
        {'x': 83, 'y': 321, 'time': 1766388851929},
        {'x': 87, 'y': 322, 'time': 1766388851963},
        {'x': 91, 'y': 323, 'time': 1766388852001},
        {'x': 96, 'y': 324, 'time': 1766388852040},
        {'x': 101, 'y': 325, 'time': 1766388852082},
        ]
    slideTrack = [
        {'x': 52, 'y': 317, 'time': 1766388851788, 't': 0},
        {'x': 53, 'y': 317, 'time': 1766388851812, 't': 0},
        {'x': 55, 'y': 317, 'time': 1766388851817, 't': 0},
        {'x': 58, 'y': 317, 'time': 1766388851825, 't': 0},
        {'x': 59, 'y': 317, 'time': 1766388851833, 't': 0},
        {'x': 61, 'y': 317, 'time': 1766388851841, 't': 0},
        {'x': 62, 'y': 317, 'time': 1766388851849, 't': 0},
        {'x': 65, 'y': 318, 'time': 1766388851857, 't': 0},
        {'x': 68, 'y': 318, 'time': 1766388851866, 't': 0},
        {'x': 69, 'y': 319, 'time': 1766388851873, 't': 0},
        {'x': 70, 'y': 319, 'time': 1766388851881, 't': 0},
        {'x': 73, 'y': 319, 'time': 1766388851889, 't': 0},
        {'x': 76, 'y': 320, 'time': 1766388851896, 't': 0},
        {'x': 77, 'y': 320, 'time': 1766388851905, 't': 0},
        {'x': 79, 'y': 320, 'time': 1766388851915, 't': 0},
        {'x': 81, 'y': 320, 'time': 1766388851921, 't': 0},
        {'x': 83, 'y': 321, 'time': 1766388851929, 't': 0},
        {'x': 84, 'y': 321, 'time': 1766388851949, 't': 0},
        {'x': 86, 'y': 322, 'time': 1766388851953, 't': 0},
        {'x': 87, 'y': 322, 'time': 1766388851963, 't': 0},
        {'x': 88, 'y': 322, 'time': 1766388851969, 't': 0},
        {'x': 89, 'y': 323, 'time': 1766388851985, 't': 0},
        {'x': 90, 'y': 323, 'time': 1766388851996, 't': 0},
        {'x': 91, 'y': 323, 'time': 1766388852001, 't': 0},
        {'x': 92, 'y': 324, 'time': 1766388852014, 't': 0},
        {'x': 93, 'y': 324, 'time': 1766388852019, 't': 0},
        {'x': 94, 'y': 324, 'time': 1766388852026, 't': 0},
        {'x': 95, 'y': 324, 'time': 1766388852033, 't': 0},
        {'x': 96, 'y': 324, 'time': 1766388852041, 't': 0},
        {'x': 97, 'y': 324, 'time': 1766388852049, 't': 0},
        {'x': 98, 'y': 324, 'time': 1766388852057, 't': 0},
        {'x': 99, 'y': 324, 'time': 1766388852065, 't': 0},
        {'x': 100, 'y': 325, 'time': 1766388852073, 't': 0},
        {'x': 101, 'y': 325, 'time': 1766388852082, 't': 0},
        {'x': 102, 'y': 325, 'time': 1766388852101, 't': 0},
    ]

dragTrack/moveTrack/slideTrack 三类轨迹的区别

数据定义、操作行为本质、字段特征、场景关联四个维度,结合具体数据逐一拆解三类轨迹的核心差异:

一、核心定义与行为本质的区别

这三类轨迹的核心是记录的用户操作行为类型不同,对应了人机交互中三种典型的鼠标/触摸动作:

轨迹类型 行为本质 通俗理解
dragTrack 按住元素(鼠标按下/触摸按压)后持续拖动的完整过程 「捏着东西移」:比如按住滑块、文件、选中的文本,从A点拖到B点的全过程
moveTrack 未按住任何元素时,鼠标/手指在界面上的自由移动路径 「空手晃」:比如鼠标指针在页面上随意移动、悬停,没有按下按键/按压屏幕
slideTrack **针对滑动类控件(滑块、轮播、滚动条等)**的专用滑动操作轨迹 「控件滑」:是拖动的特定场景化版本,仅用于滑块验证、进度条拖动等控件操作


moveTrack 就是鼠标在这个验证码里面的位置的轨迹

已知整个 captcha_container 大小为380 x 384

可以得出两边间距为 (380-340)/ 2 = 20

滑块的宽度为64.05

所以鼠标放在滑块的起始位置x坐标左边一定是在20~84.05 之间


所以,滑块的起始Y坐标69+212=281

同理,可以计算出鼠标放在滑块的起始位置y坐标左边一定是在281~325 之间

(x=0, y=0)到(x=380, y=384)这个范围

也就是说,你可以有n种方式从四边把鼠标移动进来,但最后滑动滑块的起始坐标一定是在这个确定范围内

  • x:20~84.05
  • y:281~325

结束坐标位置范围(这是滑到尽头):实际情况就是x坐标加上滑动距离

  • x:295.95~360
  • y:281~325 不变的

滑动原理:

  • 首先 ,鼠标坐标点必须得从四边(包括四个顶点)作为起始点移动进来
    • 最大坐标就是(x=380, y=384),最小坐标就是(x=0,y=0)
  • 然后,你可以有无限多种的路径再移动到滑块按钮上
    • 滑块按钮坐标范围 x:20~84.05 y:281~325
  • 最后,向右移动滑块

虽然是这么说,但是实际情况虽有偏差 最大坐标就是(x=379, y=382)

最好不要取其边界值,比如移动到滑块按钮上,你完全可以移动到其内部。然后再开始滑动,你滑动的时候,也不是沿着上底和下底移动,肯定是在内部抖动滑动

原理清楚了,我们再来看这个轨迹

  • 先看绿色部分,代表从四边把鼠标移动进来

    x是先增后减,y是递减

  • 红色部分,代表是从滑块位置开始向右移动

    x是递增,y是上下轻微抖动

相关推荐
我命由我123452 小时前
Python 开发问题:No Python interpreter configured for the project
开发语言·后端·python·学习·pycharm·学习方法·python3.11
多米Domi0112 小时前
0x3f第12天 0-1背包
python·算法·leetcode·动态规划
踢球的打工仔2 小时前
ajax的基本使用(上传文件)
前端·javascript·ajax
电商API&Tina2 小时前
跨境电商速卖通(AliExpress)数据采集与 API 接口接入全方案
大数据·开发语言·前端·数据库·人工智能·python
工业互联网专业2 小时前
基于python的旅游景点推荐系统_flask+spider
python·flask·毕业设计·源码·课程设计·spider·旅游景点推荐系统
编程乐学(Arfan开发工程师)2 小时前
信息收集与分析详解:渗透测试的侦察兵 (CISP-PTE 核心技能)
java·开发语言·javascript·python
superman超哥2 小时前
仓颉语言中异常处理入门的深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
深蓝海拓3 小时前
PySide6从0开始学习的笔记(十四)创建一个简单的实用UI项目
开发语言·笔记·python·qt·学习·ui·pyqt
Echo_NGC22373 小时前
【传统JSCC+Deep JSCC】联合信源信道编码完全指南
人工智能·python·深度学习·神经网络·conda·无人机·jscc