## 某手势验证码协议分析 终篇

某手势验证码协议分析 终篇

地址:aHR0cHM6Ly93d3cudmFwdGNoYS5jb20v

文章只提供学习,如有侵权请立即联系我。

这篇讲什么呢????

这篇就说最后一个请求 validate 。。。

效果就是下面这样 我们通过轨迹 获取到token

在这里插入图片描述

废话不多说了

言归正传

我们打开network 看下 请求栈 看一下

在这里插入图片描述
vi k d 我们在上面的章节都有讲过 就不在进行讲解了

主要就是en 了

en 也讲过 那是在 获取 验证码环节 但是这个en 有啥区别呢

那我们进行分析看一下哈

在这里插入图片描述
点进去看一下

在这里插入图片描述
这是传入的参数

那么我们要弄明白这些参数是什么就可以了

后面的加密函数 和我们 分析获取 验证码那个章节是一样的 就不在进行分析了

那我们来 看看这些分别是什么

向上 追

在这里插入图片描述

这里可以看到 原来 p 是 globalPow 那么 globalPow 我们在上个章节讲过
是通过 r 进行 pow® 生成的

我们继续往上看

在这里插入图片描述
这里看到 vi k ch cw 都是固定可以拿到的
只有v 是加密得来的

在这里插入图片描述
_0x5e10f6 是鼠标轨迹

下面这个则是加密轨迹的算法

在这里插入图片描述

    var _0x347c11 = {
        '_sample': 'abcdefgh234lmntuwxyz',
        '_convertScale': function(_0x23951f) {
            _0x23951f = Math['floor'](_0x23951f);
            var _0x5cde6c = this['_sample'][_0x23951f % 0x14];
            _0x23951f = Math['floor'](_0x23951f / 0x14);
            var _0x2d66f2 = this['_sample'][_0x23951f % 0x14];
            var _0x3753a5 = Math['floor'](_0x23951f / 0x14);
            _0x3753a5 = _0x3753a5 ? this['_sample'][_0x3753a5] : '_';
            return '' + (_0x3753a5 || '_') + (_0x2d66f2 || '_') + (_0x5cde6c || '_');
        },
        'assemblyCoordData': function(_0x18dcc8) {
            var _0xe08241 = [];
            var _0x43842e = [];
            var _0x2c4b1d = [];
            for (var _0x103809 = 0x0, _0x5044c1 = _0x18dcc8; _0x103809 < _0x5044c1['length']; _0x103809++) {
                var _0x86d38d = _0x5044c1[_0x103809];
                _0xe08241['push'](this['_convertScale'](_0x86d38d['x']));
                _0x43842e['push'](this['_convertScale'](_0x86d38d['y']));
                _0x2c4b1d['push'](this['_convertScale'](_0x86d38d['time']));
            }
            return _0xe08241['join']('') + _0x43842e['join']('') + _0x2c4b1d['join']('');
        }
    };

我们在仔细看一下轨迹

其实轨迹是经过处理的

在这里插入图片描述
第一个 坐标和第二个坐标的 x 值 和 y 值 中间有差值
说明处理过

然后 点击坐标 也处理过

在这里插入图片描述
通过分析 发现 他们处理坐标的 分别是这两个方法 我们分别进去看一下

在这里插入图片描述
这个是 减去了 canvas 的 canvasTop 以及 canvasLeft 就是说明 x,y 坐标有偏移

在这里插入图片描述
这个地方 调用了 _isAvailableData 这个方法进行添加数据 后面 传入了 0x5

我们进入 _isAvailableData 看一下

在这里插入图片描述
这就应该能明白了

就是 处理 轨迹 看是否适合添加入到轨迹列表

现在 我们找到了 轨迹 并且 通过 轨迹加密算法 进行加密轨迹 就得到了 v 现在 所有的传入参数都全了

我们在来看加密en 的算法 和 加密 获取图片验证码的 en 有什么区别么???

在这里插入图片描述
我们发现并没有 其他多出的加密算法 和第一第二篇 我们分析的 都是一样的 只是加密规则不同顺序而已

至此 整个 手势验证码协议 我们分析结束。

喜欢的点赞支持 ,

最终的整合代码 我就不放了 !!!!

最终希望大家都可以 拿到 想要的结果!!!!!!!!!!

VaptchaJsonp1639204233580({“code”: “0103”,“data”: {“token”:“1639382045FCSZnRd0428”,“frequency”:1.63,“rate”:90},“msg”:“”})

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值