众所周知 耐克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
},