Akamai JS _abck sensor_data 源码解读 事件解密(13)

本文探讨如何通过破解Akamai 1.7版本的JS防机器人识别系统,实现对Sensor_data的解析,利用模拟浏览器技术(如Requests)发送请求,以进行精确的时间间隔控制,从而进行高效的HTTP抢购操作。核心内容涉及加密算法和时间间隔计算技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

众所周知  耐克nick 阿迪adidas 德州仪器(TI ti.com)  得捷电子(digikey )贸泽电子(mouser)等较大的芯片 购物之类的网站都引入了akamai的js防机器人识别系统,现在最新的akamai版本是1.7,如果想实现http抢购,那么破解akamai的js 实现sensor_data 然后换取相关有用的_abck是必须的,然后模拟tsl(模拟浏览器怎么发送请求的 不是简单的python go php等)使用个requests就可以的,然后发送相关的数据,那么问题就解决了。

2段最重要的加密 ,就是生成 

0,168737,-1,-1,-1,-1,-1,-1,-1,-1,-1 之类的  0会累加  1687372个执行的时间间隔 后面的固定的都是,-1,-1,-1,-1,-1,-1,-1,-1,-1 

当然了 没有写出更好的逻辑,先记下来,后面用到了再逐行去写对应的解决办法

 cta: function(t, a) {
        try {
            if (1 == a && bmak[_ac[24]] < bmak[_ac[660]] || 1 != a && bmak[_ac[778]] < bmak[_ac[367]]) {
                var e = t || window[_ac[790]]
                    , n = -1
                    , o = -1;
                e && e[_ac[51]] && e[_ac[688]] ? (n = Math[_ac[744]](e[_ac[51]]),
                    o = Math[_ac[744]](e[_ac[688]])) : e && e[_ac[420]] && e[_ac[531]] && (n = Math[_ac[744]](e[_ac[420]]),
                    o = Math[_ac[744]](e[_ac[531]]));
                var m = bmak[_ac[138]]() - bmak[_ac[263]]
                    , r = bmak[_ac[568]] + _ac[226] + a + _ac[226] + m + _ac[226] + n + _ac[226] + o;
                void 0 !== e[_ac[489]] && !1 === e[_ac[489]] && (r += _ac[528]),
                    bmak[_ac[670]] = bmak[_ac[670]] + r + _ac[640],
                    bmak[_ac[96]] += m,
                    bmak[_ac[569]] = bmak[_ac[569]] + bmak[_ac[568]] + a + m + n + o,
                    bmak[_ac[168]] = 0,
                    bmak[_ac[37]] = 0
            }
            1 == a ? bmak[_ac[24]]++ : bmak[_ac[778]]++,
                bmak[_ac[568]]++,
            bmak[_ac[597]] && 2 == a && bmak[_ac[493]] < bmak[_ac[181]] && (bmak[_ac[446]] = 5,
                bmak[_ac[110]](),
                bmak[_ac[504]](!0),
                bmak[_ac[416]] = 1,
                bmak[_ac[493]]++)
        } catch (t) {}
    },
    getFloatVal: function(t) {
        try {
            if (-1 != bmak[_ac[513]](t) && !isNaN(t)) {
                var a = parseFloat(t);
                if (!isNaN(a))
                    return a[_ac[217]](2)
            }
        } catch (t) {}
        return -1
    },
    cdoa: function(t) { //t = DeviceOrientationEvent {isTrusted: true, alpha: null, beta: null, gamma: null, absolute: false, …}
            //doe_cnt 是ir里面定义的是0    doe_cnt_lmt默认是0   doa_throttle默认是0 在初始化和startdoadma()里面的都进行了赋值0操作
            if (bmak.doe_cnt < bmak.doe_cnt_lmt && bmak.doa_throttle < 2 && t) {
                var a = +new Date - bmak[_ac[263]]      //初始化ir的时候 赋值的 bmak.start_ts = +new Date
                    , e = -1                            //bmak.getFloatVal(t.alpha) 因为传递的是null  t.alpha就是null 经过运算等于-1
                    , n = -1                            //bmak.getFloatVal(t.beta)  因为传递的是null  t.beta就是null 经过运算等于-1
                    , o = -1                            //bmak.getFloatVal(t.gamma) 因为传递的是null  t.gamma就是null 经过运算等于-1
                    , m = bmak.doe_cnt +"," + a + _ac[226] + e + "," + n + "," + o; //m = 0,1730,-1,-1,-1  其中 m 可以写死,1730上下浮动即可
                void 0 !== null && !1 === null && (m += ","),  //这句话并未执行,不知道后面有没有用上 528 = “,”

                    bmak.doact = bmak.doact + m + ";",  //默认bmak.doact = “”   bmak.doact = 0,1730,-1,-1,-1;  可能后面需要累加操作进行分割把 "0,28657,-1,-1,-1;"
                    bmak.ta += a,                       //这里把分割的时间进行了累加  为了计算准确性        ta 默认=0
                    bmak.doe_vel = bmak.doe_vel + bmak.doe_cnt + a, //这里也是进行计算操作
                    bmak.doe_cnt++
            }
            // false        doe_cnt
            bmak.js_post && bmak.doe_cnt > 1 && bmak[_ac[436]] < bmak[_ac[639]] && (bmak[_ac[446]] = 6,     //这段代码并没执行
                bmak[_ac[110]](),
                bmak[_ac[504]](!0),
                bmak[_ac[416]] = 1,
                bmak[_ac[436]]++),
                bmak.doa_throttle++
        // console.log(bmak.doact)
        // console.log(bmak.ta)
        // console.log(bmak.doe_vel)
        // console.log(bmak.doe_cnt)
        // console.log(bmak.doa_throttle)
        // debugger
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值