得物 六宫格验证码 分析

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

关键代码

function nv_checkPoint2(nv_x, nv_y, nv_element, nv_rate) {
            var nv_xIndex;
            var nv_yIndex;
            var nv_X;
            var nv_Y;
            if (Math.abs(nv_x - 45 * nv_rate) <= (40 * nv_rate)) {
                nv_xIndex = 1;
                nv_X = nv_element.nv_x + 45 * nv_rate
            } else if (Math.abs(nv_x - 130 * nv_rate) <= (40 * nv_rate)) {
                nv_xIndex = 2;
                nv_X = nv_element.nv_x + 130 * nv_rate
            } else if (Math.abs(nv_x - 215 * nv_rate) <= (40 * nv_rate)) {
                nv_xIndex = 3;
                nv_X = nv_element.nv_x + 215 * nv_rate
            }
            ;if (Math.abs(nv_y - 45 * nv_rate) <= (40 * nv_rate)) {
                nv_yIndex = 1;
                nv_Y = nv_element.nv_y + 45 * nv_rate
            } else if (Math.abs(nv_y - 130 * nv_rate) <= (40 * nv_rate)) {
                nv_yIndex = 2;
                nv_Y = nv_element.nv_y + 130 * nv_rate
            }
            ;return (({
                nv_point: (nv_yIndex || 0) + '' + (nv_xIndex || 0),
                nv_centerPoint: (nv_X || 0) + ',' + (nv_Y || 0),
            }))
        }
 var nv_startPoint = parseInt(parseInt(nv_startY) - nv_rectObj.nv_y) + ',' + parseInt(parseInt(nv_startX) - nv_rectObj.nv_x) + ',' + nv_startTime;
var nv_endPoint = parseInt(nv_y - nv_rectObj.nv_y) + ',' + parseInt(nv_x - nv_rectObj.nv_x) + ',' + (Date.now()+1566 - nv_startTime);
var nv_realWidth = 80 * nv_rate;
 nv_endLeft = nv_x - nv_startX + nv_startLeft;
nv_endTop = nv_y - nv_startY + nv_startTop;
var nv_realLeft = Math.abs(parseInt(nv_initLeft) - nv_endLeft);
var nv_realTop = Math.abs(parseInt(nv_initTop) - nv_endTop);
var nv_areaRate = ((nv_realWidth - nv_realLeft) * (nv_realWidth - nv_realTop)) / (nv_realWidth * nv_realWidth);
var nv_sp = nv_checkPoint2(parseInt(nv_startX) - nv_rectObj.nv_x, parseInt(nv_startY) - nv_rectObj.nv_y, nv_rectObj, nv_rate);
var nv_ep = nv_checkPoint2(nv_x - nv_rectObj.nv_x, nv_y - nv_rectObj.nv_y, nv_rectObj, nv_rate);
var nv_postData = ({
                nv_pts: nv_startPoint + '|' + nv_endPoint,
                nv_xys: nv_xys.join('|'),
                nv_sp: nv_sp,
                nv_ep: nv_ep,
});
function calculateMove(start, end) {
  const grid = [
    [1,2,3], 
    [4, 5, 6]   
  ];

 
  const startRow = Math.floor((start - 1) / 3);
  const startCol = (start - 1) % 3;
  const endRow = Math.floor((end - 1) / 3);
  const endCol = (end - 1) % 3;
}

结果

总结 

1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2766958292

wx a15018601872

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值