Akamai JS _abck sensor_data 源码解读 检测是否是src的script(11)

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

其中源码的这段话 

if (bmak[_ac[434]](_ac[764]), _cf[_ac[798]] > 0) {
		for (var bm_counter = 0; bm_counter < _cf[_ac[798]]; bm_counter++) bmak[_ac[335]](_cf[bm_counter]);
		bmak[_ac[434]](_ac[665] + bmak[_ac[482]][_ac[179]]() + _ac[502]),
		_cf = {
			push: bmak[_ac[335]]
		}
	} else {
		var bm_script;
		if (document[_ac[710]] && (bm_script = document[_ac[710]]), !bm_script) {
			var scripts = document[_ac[339]](_ac[410]);
			scripts[_ac[798]] && (bm_script = scripts[scripts[_ac[798]] - 1])
		}
		if (bm_script[_ac[427]]) {
			var bm_url = bm_script[_ac[427]],
			url_split = bm_url[_ac[201]](_ac[767]),
			obfus_state_field;
			if (url_split[_ac[798]] >= 4 && (obfus_state_field = bm_url[_ac[201]](_ac[767])[_ac[8]]( - 4)[0]), obfus_state_field && obfus_state_field[_ac[798]] % 2 == 0) {
				var state_field_str = bmak[_ac[603]](obfus_state_field);
				state_field_str[_ac[798]] >= 3 && (bmak[_ac[36]][_ac[399]](_ac[378] == state_field_str[0]), bmak[_ac[36]][_ac[299]](_ac[378] == state_field_str[1]), bmak[_ac[36]][_ac[69]](_ac[378] == state_field_str[2]), bmak[_ac[36]][_ac[53]](bm_url))
			}
		}
	}

其实就是在判断是否是浏览器里面的JS 而且url 地址也进行了检测

检测完成后就进行了赋值,其中 

 bmak.cf_url 

多次进行了赋值

因为上面还有个debug模式

所以我去掉了 直接完成后的逆向JS是:

    if (bm_script.src) { //这段话很有意思哈,因为我们的脚本都是src里面的,要是直接内嵌到html或者其他的话就是false了,就不执行了,所以是个坑,要注意哦
        var bm_url = "https://www.ti.com/6uAF/Mf67/o/Y/7zOGNghQ/3Nbuf2DNazEQ/ADNEAQ/KlY/LA10xJz8B"
        var url_split = bm_url.split("/")
        var obfus_state_field = "3Nbuf2DNazEQ"  //url地址的倒数第四个参数
        if (url_split.length >= 4 && obfus_state_field.length % 2 == 0) {
            var state_field_str = bmak.getStateField(obfus_state_field);    //具体是干嘛的不知道 反正经过计算得出110011
            state_field_str.length>= 3 && (bmak.listFunctions._setFsp("1" == state_field_str[0]),   //这个需要注意的是 这是给bmak.cf_url 设置"https://"  另外根据传入的false 和 true  给fsp赋值成false 或者 true   等实战的时候记得传递后需要进行计算
                bmak.listFunctions._setBm("1" == state_field_str[1]),         //经过测试 无论是传递false 还是 true  bmak.bm 永远 等 true 另外还重新给bmak.cf_url 和 bmak.params_url 重新进行了赋值+
                                                                                //             bmak.cf_url   = "https://www.ti.com/_bm/_data"
                                                                                //             bmak.params_url = "https://www.ti.com/get_params"
                bmak.listFunctions._setPowState("1" == state_field_str[2]),   //给bmak.pstate 赋值,传递的值为 t  是true 或者 false罢了
                bmak.listFunctions._setAu(bm_url))                              // 重新给 bmak.cf_url 赋值成了 bm_url https://www.ti.com/6uAF/Mf67/o/Y/7zOGNghQ/3Nbuf2DNazEQ/ADNEAQ/KlY/LA10xJz8B
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值