IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Akamai JS _abck sensor_data 源码解读第二天 全是嵌套(7) -> 正文阅读

[Python知识库]Akamai JS _abck sensor_data 源码解读第二天 全是嵌套(7)

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

继续跟着chrome断点,一步步的执行,目前来说开始做到了事件的监控了,目前来说追的还算是比较的顺利,但是后面看断电的话,要换JS文件等等,还是有点复杂和困难的。

目前这个

startTracking: function() {}  

是最可恶的啊。。。。,还没都分析出来。不过里面应该都是监听的事件吧。。。。。。

 startdoadma: function() {
        0 == bmak.doadma_en && window.addEventListener && (window.addEventListener('deviceorientation', function (){}, !0),
            window.addEventListener('devicemotion', function (){}, !0),
            bmak.doadma_en = 1),
            bmak.doa_throttle= 0,
            bmak.dma_throttle = 0
    },
    pi: function(t) {
        return parseInt(t)
    },
    to: function() {
        var t = bmak.x2() % 1e7;
        bmak.d3 = t;
        for (var a = t, e = bmak.pi(bmak.ff(51)), n = 0; n < 5; n++) {
            var o = bmak.pi(t / Math.pow(10, n)) % 10
                , m = o + 1;
            op = bmak.cc(o),
                a = op(a, m)
        }
        bmak.o9 = a * e
    },
    x2: function() {
        var t = bmak.ff
            , a = t(98) + t(109) + t(97) + t(107)
            , e = t(103) + t(101) + t(116) + t(95) + t(99) + t(102) + t(95) + t(100) + t(97) + t(116) + t(101)
            , n = window[a][e]
            , o = 0;
        return "function" == typeof n && (o = n()),
            o
    },
    ff: function(t) {
        return String.fromCharCode(t)
    },
    cc: function(t) {
        var a = t % 4;
        2 == a && (a = 3);
        var e = 42 + a
            , n = function(t, a) {
            return 0
        };
        if (42 == e)
            var n = function(t, a) {
                return t * a
            };
        else if (43 == e)
            var n = function(t, a) {
                return t + a
            };
        else
            var n = function(t, a) {
                return t - a
            };
        return n
    },
    htm: function(t) {
        bmak.cta(t, 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) {}
    },


    startTracking: function() {
        bmak.startdoadma();
        try {
            bmak.to()
        } catch (t) {
            bmak.o9= -654321
        }
        setInterval(function() {
            bmak.startdoadma()
        }, 3e3),
            document.addEventListener ? (document.addEventListener('touchmove', bmak[_ac[251]], !0),
                document[_ac[252]](_ac[5], bmak[_ac[391]], !0),
                document[_ac[252]](_ac[350], bmak[_ac[646]], !0),
                document[_ac[252]](_ac[125], bmak[_ac[215]], !0),
                document[_ac[252]](_ac[567], bmak[_ac[176]], !0),
                document[_ac[252]](_ac[4], bmak[_ac[359]], !0),
                document[_ac[252]](_ac[602], bmak[_ac[188]], !0),
                document[_ac[252]](_ac[754], bmak[_ac[337]], !0),
                document[_ac[252]](_ac[312], bmak[_ac[241]], !0),
                document[_ac[252]](_ac[651], bmak[_ac[289]], !0),
                document[_ac[252]](_ac[17], bmak[_ac[404]], !0),
                document[_ac[252]](_ac[522], bmak[_ac[271]], !0),
                document[_ac[252]](_ac[769], bmak[_ac[430]], !0)) : document[_ac[545]] && (document[_ac[545]](_ac[799], bmak[_ac[251]]),
                document[_ac[545]](_ac[5], bmak[_ac[391]]),
                document[_ac[545]](_ac[350], bmak[_ac[646]]),
                document[_ac[545]](_ac[125], bmak[_ac[215]]),
                document[_ac[545]](_ac[605], bmak[_ac[176]]),
                document[_ac[545]](_ac[536], bmak[_ac[359]]),
                document[_ac[545]](_ac[795], bmak[_ac[188]]),
                document[_ac[545]](_ac[607], bmak[_ac[337]]),
                document[_ac[545]](_ac[392], bmak[_ac[241]]),
                document[_ac[545]](_ac[760], bmak[_ac[289]]),
                document[_ac[545]](_ac[550], bmak[_ac[404]]),
                document[_ac[545]](_ac[334], bmak[_ac[271]]),
                document[_ac[545]](_ac[380], bmak[_ac[430]])),
            bmak[_ac[310]](),
            bmak[_ac[211]] = bmak[_ac[366]](),
        bmak[_ac[597]] && (bmak[_ac[446]] = 0,
            bmak[_ac[110]](),
            bmak[_ac[504]](!0)),
            bmak[_ac[268]] = !1
    },
}
t = {}

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:11:29  更:2021-10-06 12:13:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:34:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码