不知不觉又到年底了,为了让这个年有点仪式感,我觉着少了一瓶茅台,又不想当冤大头,只能去某东去抢,去年的自动化脚本已经完全失效了。只能从头看接口重写一个了。以下内容是完成此目标必须解决的三个主要问题:

第一个问题:sk参数

最直接的想法就是把能提取参数先临时提取出来,直接模拟最后submitOrder就完事了,但是,

仔细一对,发现submit请求的参数中有个每次请求都会变的参数,即 sk,如下图中的 sk: JKMCKRY9R9OIYXKXHDPAPUA2

它是由https://tak.jd.com/t/xxxx?_t=16xxxxxxx65(第二个红框)请求的结果

{
    "code": "000000",
    "message": "success",
    "data": {
        "@t": "ch",
        "j": "A19JMSnoGQB9O9O44Pr0",
        "ibV": "BqytgL31urDQOURzpVbj",
        "EUK": "JkMCkRY9r9oIyXkXhDpa",
        "JRy": "NbPqD8pUa2cL8qGlQeSJ",
        "R": "llUnV7u1d4v3tRmYrHrU"
    }
}

根据一定的规则生成的,而这个计算规则,则在第一个红框所请求的高度混淆的js(第一个红框)中,如下:

var a = ['lldQO', 'jZHsA', 'nFEfh', 'pAAid', 'sgZjN', 'eGgXs', 'text', 'EqSUN', 'JAdKU', 'substring', 'GJcnm', 'sXGWH', 'kFGPV', 'NJpfY', 'eOf', 'EjQeB', 'firstChild', 'WOKzJ', 'GsCRu', 'GtfMt', 'parse', 'src', 'Header', 'QNgBC', 'zcyjY', 'push', 'head', 'QEeKZ', 'mjZFK', 'VWgtR', 'dtWoG', 'BneJr', 'rrEvO', 'tSwKd', 'error', 'qvOKW', 'length', 'RUTNi', 'oSRpL', 'RszVF', '3|0|4|5', 'aGMxd', 'EBjuq', 'llUpd', 'WfeMF', 'vzqHI', 'tJAAX', 'oDlBx', 'Math', 'zgvgB', '\x20=\x20{};', 'yZsYB', 'nljZJ', 'RHNLP', '471547nhbvAB', 'rVhua', 'chNRq', 'wylHf', 'QZhRj', 'FxbCW', 'RCWbV', 'setRequest', 'SPysm', 'hNSRv', 'BOGRg', 'OVjYM', 'GHabM', 'IrPje', 'kVNZW', 'HrwSS', 'DBGnx', 'cbc', 'parentNode', 'VghoS', '618qaz', 'HHoNs', 'ent', 'aILAk', 'EFGHIJKLMN', 'IE6.0', 'new\x20', 'odRrx', 'getTakId', 'nbQtT', 'dudGX', 'fMuwk', 'xuQMD', 'PGgDV', 'beforeSend', 'YYrYN', 'UXLxj', 'VFmgf', 'window', 'YGKXD', 'mrTkw', '1567687ujBbHh', 'BdPqg', 'IE7', 'jjJhl', 'KxrJc', 'replace', 'floor', 'MvYcX', 'KTcwr', 'Content-Ty', 'abort', 'CMnsA', 'uKcDK', 'VPCey', 'EItFa', '/871A9', 'aHXWy', 'IE8', 'npxnA', 'kpiUX', 'getElement', 'ZHfSj', 'GFwzC', 'uest()', 'tdODm', 'iXLHu', 'kSlHz', 'PeotU', 'pIERJ', 'NUJqJ', 'fCDat', 'VkcSc', '2TJWgqD', 'fJPEx', 'YLqtw', 'FKzwO', 'CKuXa', 'xXaBT', 'FRbmZ', 'fCkqf', 'cca', 'kbKBy', 'nTmMX', 'aafoL', 'ywZly', 'cmhtv', 'EIyYL', 'replaceAll', 'callback', 'IE8.0', '?_t=', 'ack', 'isPrototyp', 'slice', 'KVNGh', 'gAFKe', 'puJRF', 'CkHMQ', 'usDOy', 'eERhG', 'mTcKb', 'VnKeb', 'appVersion', 'lXTre', 'MUqNz', 'YzhZC', 'MSIE6.0', 'data', 'ioCGU', 'rsSaL', 'MpQjx', 'bHMcA', 'zDjyM', 'XMLHttpReq', '5ZagKJb', 'iKESf', 'WmHii', 'ZGUyA', 'SxNRS', 'toString', 'GVlln', 'LPXII', 'HWTZp', 'IE6', '202982JCOwVA', 'xqyGs', 'charAt', 'Tk01qaz', 'jydAi', 'KHZAX', 'sGjUy', 'KcIoA', 'CZoPv', 'cbzyT', 'FhOZt', 'uYZLo', 'async', 'EdJKj', 'IE9', 'UrxhB', 'NmGpv', 'Microsoft\x20', 'NEbGJ', 'rNhAE', 'lvMCJ', 'XBeqj', 'pGahF', 'WfhZv', 'nseiS', 'iOrAA', 'valoj', 'ggGUD', 'vuCZz', 'zkDlO', 'BVVUw', 'sgAsJ', 'GET', 'fEGtD', 'plbwq', 'GBlxF', 'XMngE', 'split', 'rgReW', 'sKmYA', 'random', 'TZuhl', '69346SBmBkx', 'MeYBM', 'rhtnU', 'timeout', 'fuEUT', 'PdyWH', 'vimna', 'uvwxyzABCD', 'TnnbB', 'YspSm', 'status', 'bzNMU', 'yGDmJ', 'Potws', 'MjPSd', '7|1|3|0|5|', 'IE9.0', '290462FYzZWn', 'MtkKB', 'SyaRc', 'wVqTU', 'toLowerCas', 'vGjck', 'YDEay', 'UFSgq', 'yhNBd', 'awlfS', 'XZXcC', 'OLyjz', 'k.jd.com/t', 'responseTe', 'JaKcT', 'kSmIv', 'OTHER', 'bqwEb', 'vFJNg', 'yTzCZ', 'Internet\x20E', 'rtHOc', 'lfaQu', 'qnPQB', 'KKdOi', 'qIufc', 'appName', 'RDkbd', 'nApJv', '_tak.callb', 'nhLua', 'EtYgX', 'oLUHI', 'ded', 'NlUxE', 'open', 'NeOfc', 'PTcXV', 'GatAr', 'bXKkW', 'fyLEK', 'xplorer', 'nNJLf', 'BleaJ', 'lNpLw', 'jUMdn', 'Blvlr', 'illidan', 'xTKXj', 'ptfpa', 'XpgBL', 'WfUjL', 'EqacN', 'gHDYL', 'dPvFR', 'turRq', 'cza', 'yKNmn', 'klmnopqrsd', 'MSIE7.0', 'PQlzn', 'prototype', 'fzJqD', 'gevUl', 'woZDD', 'MSIE8.0', 'vwzbU', 'yMYZP', 'ihSsf', 'number', 'MhqQN', 'hHeAb', 'LjbQn', 'toUpperCas', 'rm-urlenco', 'uTXpp', 'WTzan', 'hSMqz', 'HGKiC', 'ruhSx', '1|4|7|0|3|', 'success', 'gmi', 'bWtox', 'qBMtN', 'mpUnD', 'oRfMK', 'object', 'WJGcW', 'createElem', 'substr', 'bPwQA', 'jbluY', 'yglwD', 'apply', 'jQwsu', 'mpGHf', 'moQDT', 'd11qaz', 'Xpbjw', 'omzLA', 'wKDzq', 'withCreden', 'meflj', 'applicatio', 'ezKTK', 'url', 'Enfat', 'jBMlt', 'sByTagName', 'insertBefo', 'script', 'FCZCX', '324860wQAadD', 'YOqtZ', 'xYPWb', 'MTCok', 'ldnwg', 'LeAcS', 'pmRHs', 'OONot', 'NeDOQ', '0123456789', 'PeygC', 'text/javas', 'jgoUQ', 'removeChil', 'indexOf', 'https://ta', 'ujGdp', 'JphZK', 'OpgfO', 'qVKmb', 'SgUDd', 'techange', 'YMxAJ', 'OPQRSTUVWX', '8|6|1|7|2|', 'aGyfw', 'abcdefghij', 'yMvBC', 'HQAnF', 'ssMXc', 'GGTmA', 'ODonA', 'UekeV', 'QvBTY', 'uplXA', '894809PwqgBm', 'YHeuP', 'YcRUx', 'xeOtJ', 'BHtze', 'kWzlO', 'function\x20', 'XaCGf', 'JqYzR', 'xqTAX', 'jDhSY', 'ERTbH', 'Lvekv', 'qNjYF', 'faOKV'];
var b = function (c, d) {
    c = c - 0xdd;
    var e = a[c];
    return e;
};
var a2 = b;
(function (c, d) {
    var a1 = b;
    while (!![]) {
        try {
            var e = parseInt(a1(0x166)) + parseInt(a1(0xf5)) + parseInt(a1(0x189)) + parseInt(a1(0x24b)) * parseInt(a1(0x217)) + parseInt(a1(0x1ce)) + parseInt(a1(0xe4)) * -parseInt(a1(0x241)) + -parseInt(a1(0x1f7));
            if (e === d) break;
            else c['push'](c['shift']());
        } catch (f) {
            c['push'](c['shift']());
        }
    }
}(a, 0x73889));
try {
    String[a2(0x132)][a2(0x226)] = function (c, d, e) {
            var a3 = a2,
                f = {
                    'fCkqf': a3(0x147),
                    'TnnbB': a3(0x18f),
                    'GZasQ': function (g, h) {
                        return g === h;
                    }, 'HQAnF': a3(0x169),
                    'Hxjdz': a3(0xef),
                    'SPysm': a3(0x268)
                };
            if (RegExp[a3(0x132)][a3(0x22b) + a3(0x1a6)](c)) {
                if (f['GZasQ'](f[a3(0x182)], f['Hxjdz'])) {
                    function g() {
                        var a4 = a3;
                        return k[a4(0x132)][a4(0x22b) + a4(0x1a6)](l) ? this[a4(0x1fc)](s, t) : this['replace'](new u(v, w ? f[a4(0x21e)] : 'gm'), x);
                    }
                } else return this[a3(0x1fc)](c, d);
            } else {
                if (f['SPysm'] === f[a3(0x1d6)]) return this[a3(0x1fc)](new RegExp(c, e ? f[a3(0x21e)] : 'gm'), d);
                else {
                    function h() {
                        var a5 = a3,
                            i = d[a5(0x246)]();
                        return i = i[a5(0x14f)](f[a5(0xec)][a5(0x1bc)]), i = i['substr'](0x0, i[a5(0x174)]('(')), i;
                    }
                }
            }
        },
        function () {
            var a6 = a2,
                c = {
                    'nhLua': function (L, M, N) {
                        return L(M, N);
                    }, 'TZuhl': function (L, M) {
                        return L === M;
                    }, 'QZhRj': a6(0x1dd),
                    'GsCRu': function (L, M) {
                        return L(M);
                    }, 'ruhSx': function (L, M) {
                        return L !== M;
                    }, 'zDjyM': a6(0x156),
                    'GfMQD': function (L, M) {
                        return L == M;
                    }, 'YGKXD': a6(0x13a),
                    'xvZsR': function (L, M) {
                        return L === M;
                    }, 'dudGX': a6(0x15a),
                    'WiYrI': a6(0x25f),
                    'CMnsA': a6(0x1ba),
                    'YMxAJ': function (L) {
                        return L();
                    }, 'iXLHu': function (L) {
                        return L();
                    }, 'oDlBx': function (L, M) {
                        return L(M);
                    }, 'xqyGs': function (L, M) {
                        return L + M;
                    }, 'VWgtR': '&callback=' + '_tak.callb' + 'ack',
                    'NlUxE': a6(0x25c) + a6(0x109) + a6(0x11e),
                    'rgReW': a6(0x239),
                    'xeOtJ': function (L, M) {
                        return L !== M;
                    }, 'EjQeB': 'jDhSY',
                    'nFEfh': function (L, M) {
                        return L == M;
                    }, 'OVjYM': function (L, M) {
                        return L == M;
                    }, 'DBGnx': a6(0x130),
                    'cnoiw': a6(0x1fe),
                    'MeYBM': function (L, M) {
                        return L == M;
                    }, 'VkcSc': a6(0x136),
                    'RDkbd': 'MSIE9.0',
                    'muJoS': a6(0x185),
                    'eZtbS': 'PRsRe',
                    'RszVF': a6(0x150),
                    'PeotU': function (L, M) {
                        return L == M;
                    }, 'hSMqz': a6(0x158),
                    'Blvlr': a6(0x164),
                    'rrEvO': a6(0x171) + 'cript',
                    'NUJqJ': function (L, M) {
                        return L(M);
                    }, 'dETXZ': function (L) {
                        return L();
                    }, 'JphZK': function (L, M) {
                        return L !== M;
                    }, 'ujGdp': 'TDBjJ',
                    'nseiS': function (L, M) {
                        return L === M;
                    }, 'jZHsA': 'uYqnx',
                    'jUMdn': 'rmjqb',
                    'fzJqD': function (L, M) {
                        return L(M);
                    }, 'PdyWH': function (L, M) {
                        return L !== M;
                    }, 'jjJhl': 'iUCrW',
                    'PHuqD': a6(0x16e),
                    'fZWbi': a6(0x125),
                    'GtfMt': function (L, M) {
                        return L(M);
                    }, 'mpGHf': function (L, M) {
                        return L(M);
                    }, 'ezKTK': a6(0x18e),
                    'qIufc': a6(0x168),
                    'bqwEb': function (L, M) {
                        return L == M;
                    }, 'IXawO': 'qBMtN',
                    'VPCey': a6(0x108),
                    'gAFKe': a6(0x1f1),
                    'SgUDd': 'ebfrI',
                    'EIyYL': 'xuQMD',
                    'RCWbV': a6(0x1b2),
                    'uYZLo': a6(0x1ca),
                    'tdODm': function (L, M) {
                        return L !== M;
                    }, 'GFwzC': 'HFSPN',
                    'aGyfw': a6(0x1e9),
                    'EqSUN': function (L) {
                        return L();
                    }, 'OONot': a6(0x242),
                    'ssMXc': 'lAHxQ',
                    'BOGRg': function (L, M) {
                        return L === M;
                    }, 'uTXpp': a6(0x1e3),
                    'bXKkW': a6(0x200) + 'pe',
                    'PQlzn': a6(0x220),
                    'eSxAr': function (L, M, N) {
                        return L(M, N);
                    }, 'dtWoG': 'bSaHK',
                    'XaCGf': 'szQLb',
                    'pAAid': function (L, M) {
                        return L != M;
                    }, 'BneJr': function (L, M) {
                        return L !== M;
                    }, 'PGgDV': 'FdnfX',
                    'QEeKZ': function (L, M) {
                        return L + M;
                    }, 'vuCZz': function (L, M) {
                        return L + M;
                    }, 'qnPQB': function (L, M) {
                        return L - M;
                    }, 'VnKeb': 'CtcEA',
                    'BHtze': a6(0x21b),
                    'kFGPV': a6(0x240) + a6(0x20e),
                    'KKdOi': function (L, M) {
                        return L(M);
                    }, 'ZHfSj': a6(0x231),
                    'llUpd': function (L, M) {
                        return L === M;
                    }, 'tJAAX': a6(0x14c),
                    'kpiUX': a6(0x151),
                    'mrTkw': function (L, M) {
                        return L === M;
                    }, 'QvBTY': 'QNgBC',
                    'aGMxd': a6(0x21c),
                    'YcRUx': 'QmrUl',
                    'wylHf': 'ilvHl',
                    'BdPqg': 'IhMrB',
                    'NmGpv': function (L, M) {
                        return L * M;
                    }, 'xqTAX': function (L, M) {
                        return L + M;
                    }, 'kSmIv': function (L, M) {
                        return L + M;
                    }, 'fMuwk': function (L, M) {
                        return L + M;
                    }, 'PTcXV': function (L, M) {
                        return L(M);
                    }, 'eERhG': function (L, M) {
                        return L === M;
                    }, 'fCDat': a6(0x1a0),
                    'RHNLP': function (L, M) {
                        return L < M;
                    }, 'PeygC': a6(0x236),
                    'yhNBd': function (L, M) {
                        return L + M;
                    }, 'omzLA': function (L, M) {
                        return L + M;
                    }, 'aHXWy': function (L, M) {
                        return L + M;
                    }, 'meflj': a6(0x218),
                    'UFSgq': function (L, M) {
                        return L + M;
                    }, 'plbwq': function (L, M) {
                        return L == M;
                    }, 'FCZCX': a6(0x152),
                    'pIERJ': function (L, M) {
                        return L + M;
                    }, 'chNRq': a6(0x1e8),
                    'tcBNB': function (L, M) {
                        return L !== M;
                    }, 'bHMcA': a6(0x139),
                    'hNSRv': function (L, M) {
                        return L + M;
                    }, 'JaKcT': a6(0x198),
                    'lNpLw': function (L, M) {
                        return L + M;
                    }, 'YzhZC': a6(0x243),
                    'awlfS': a6(0x25e),
                    'jQwsu': function (L, M) {
                        return L(M);
                    }, 'mTcKb': function (L, M) {
                        return L === M;
                    }, 'MhqQN': a6(0xf1),
                    'TTOjc': function (L, M) {
                        return L !== M;
                    }, 'MpQjx': a6(0x1a3),
                    'vzqHI': a6(0x197),
                    'rQcaV': function (L, M) {
                        return L !== M;
                    }, 'WOKzJ': a6(0x26a),
                    'rVhua': a6(0x195),
                    'EBjuq': a6(0x21f),
                    'qvOKW': function (L, M) {
                        return L == M;
                    }, 'TjkrS': function (L, M) {
                        return L(M);
                    }, 'ldnwg': a6(0x1df),
                    'EtYgX': function (L, M) {
                        return L(M);
                    }, 'mpUnD': function (L, M) {
                        return L == M;
                    }, 'yGDmJ': function (L, M) {
                        return L == M;
                    }, 'YtWmo': a6(0x12d),
                    'XMngE': function (L, M) {
                        return L(M);
                    }, 'WJGcW': function (L, M) {
                        return L === M;
                    }, 'LPXII': a6(0x115),
                    'qaiTG': a6(0x17e) + a6(0x1c0),
                    'YDEay': function (L, M) {
                        return L === M;
                    }, 'fuEUT': a6(0x157),
                    'rhtnU': a6(0x1e2),
                    'jgoUQ': 'sIxqZ',
                    'pmRHs': a6(0x145) + '2|6|5',
                    'gHDYL': a6(0xed),
                    'yDAax': 'YLlNX',
                    'HWTZp': function (L, M) {
                        return L !== M;
                    }, 'qVKmb': a6(0x22d),
                    'CBUYZ': function (L, M) {
                        return L !== M;
                    }, 'FRbmZ': 'fictz',
                    'CZoPv': a6(0x107),
                    'QZsnf': a6(0x24e),
                    'oSRpL': function (L, M) {
                        return L + M;
                    }, 'rtHOc': a6(0x124),
                    'uKcDK': function (L, M) {
                        return L !== M;
                    }, 'OpgfO': a6(0x1f3),
                    'vwzbU': function (L, M) {
                        return L + M;
                    }, 'NEbGJ': function (L, M) {
                        return L * M;
                    }, 'RLJEj': function (L, M) {
                        return L + M;
                    }, 'IrPje': function (L, M) {
                        return L + M;
                    }, 'BleaJ': a6(0x188),
                    'EItFa': a6(0x260),
                    'zcyjY': function (L, M) {
                        return L(M);
                    }, 'ZNrPS': function (L, M) {
                        return L === M;
                    }, 'Enfat': 'TJxWX',
                    'ptfpa': function (L, M) {
                        return L !== M;
                    }, 'ERTbH': 'OCDui',
                    'lfaQu': a6(0x15f),
                    'jBMlt': function (L, M) {
                        return L + M;
                    }, 'KTcwr': a6(0x146),
                    'MUqNz': function (L) {
                        return L();
                    }, 'GVlln': 'zPuFf',
                    'ywZly': 'WinHN',
                    'EdJKj': function (L) {
                        return L();
                    }, 'KcIoA': function (L, M) {
                        return L || M;
                    }, 'hHeAb': a6(0x175) + a6(0x101) + a6(0x206),
                    'HGKiC': 'setTimeout',
                    'DPyWa': function (L, M) {
                        return L(M);
                    }, 'turRq': a6(0x1f4),
                    'ybghD': function (L, M) {
                        return L(M);
                    }, 'KHZAX': a6(0x1e7),
                    'OLyjz': 'IE7.0',
                    'SyaRc': a6(0x228),
                    'NeOfc': 'other',
                    'FxbCW': function (L) {
                        return L();
                    }, 'zEpFk': 'text',
                    'jDooP': a6(0x16f) + a6(0x180) + a6(0x12f) + a6(0xeb) + a6(0x1e6) + a6(0x17d) + 'YZ',
                    'hGrJU': function (L, M) {
                        return L === M;
                    }, 'MjPSd': a6(0x209)
                };
                _tak = {};
            _tak = c[a6(0x252)](_tak, {});
            var e = c[a6(0x13c)],
                f = eval,
                g = c[a6(0x1b0)](f, c[a6(0x143)]),
                h = c['DPyWa'](f, c[a6(0x12c)]),
                i = eval('var a7 = a6;if (c[a7(227)](a7(560), c[a7(466)])) {\n    function L() {\n        var a8 = a7;\n        h = c[a8(275)](i, function () {\n            var a9 = a8;\n            m[a9(513)](), n[a9(442)]();\n        }, l[\'timeout\']);\n    }\n} else\n    clearTimeout;'),
                j = c['ybghD'](f, a6(0x1c8)),
                k = function (L) {
                    var ab = a6,
                        M = {
                            'eGgXs': function (N, O) {
                                var aa = b;
                                return c[aa(0x1aa)](N, O);
                            }
                        };
                    if (c[ab(0x144)](ab(0x156), c[ab(0x23f)])) {
                        function N() {
                            return E;
                        }
                    } else {
                        if (c['GfMQD'](typeof L, c['YGKXD'])) {
                            if (c['xvZsR'](c[ab(0x1ec)], c['WiYrI'])) {
                                function O() {
                                    var ac = ab;
                                    if (k(l)) {
                                        var P = [];
                                        for (var Q in s) {
                                            P[ac(0x1b1)](M[ac(0x19d)](y, z[Q]));
                                        }
                                        L = D(x[ac(0x153)](this, P));
                                    }
                                }
                            } else return L;
                        }
                        throw new Error(c[ab(0x202)]);
                    }
                },
                l = {
                    'IE6': c[a6(0x250)],
                    'IE7': c[a6(0x100)],
                    'IE8': c[a6(0xf7)],
                    'IE9': a6(0xf4),
                    'OTHER': c[a6(0x119)]
                };

            function m() {
                var af = a6,
                    L = {
                        'YHeuP': function (M, N) {
                            var ad = b;
                            return c[ad(0x1c7)](M, N);
                        }, 'nbQtT': function (M, N) {
                            var ae = b;
                            return c[ae(0x24c)](M, N);
                        }, 'qsQrK': c[af(0x1b5)]
                    };
                if (c['GfMQD'](navigator[af(0x10f)], c['NlUxE']) && navigator['appVersion']['split'](';')[0x1][af(0x1fc)](/[ ]/g, '') == c[af(0xe0)]) {
                    if (c[af(0x18c)](af(0x193), c[af(0x1a7)])) {
                        function M() {
                            var ag = af;
                            L[ag(0x18a)](e, L[ag(0x1eb)](f['url'], L['qsQrK']));
                        }
                    } else return l[af(0x24a)];
                } else {
                    if (c[af(0x19a)](navigator[af(0x10f)], c['NlUxE']) && c[af(0x1d9)](navigator[af(0x235)][af(0xdf)](';')[0x1][af(0x1fc)](/[ ]/g, ''), c[af(0x1de)])) {
                        if (c[af(0x18c)](af(0x1fe), c['cnoiw'])) {
                            function N() {
                                var ah = af;
                                e[ah(0x1a1)](0x5, 0x8) + f[ah(0x1fc)](/a/gi, 'c');
                            }
                        } else return l[af(0x1f9)];
                    } else {
                        if (c[af(0xe5)](navigator[af(0x10f)], c['NlUxE']) && c[af(0xe5)](navigator[af(0x235)][af(0xdf)](';')[0x1][af(0x1fc)](/[ ]/g, ''), c[af(0x216)])) return l['IE8'];
                        else {
                            if (c[af(0xe5)](navigator[af(0x10f)], c[af(0x117)]) && navigator['appVersion'][af(0xdf)](';')[0x1][af(0x1fc)](/[ ]/g, '') == c[af(0x110)]) {
                                if (af(0x185) !== c['muJoS']) {
                                    function O() {
                                        var ak = af,
                                            P = {
                                                'GatAr': function (Q) {
                                                    var ai = b;
                                                    return c[ai(0x17c)](Q);
                                                }, 'Yktjp': function (Q, R, S) {
                                                    return c['nhLua'](Q, R, S);
                                                }, 'fyLEK': function (Q) {
                                                    var aj = b;
                                                    return c[aj(0x210)](Q);
                                                }
                                            };
                                        c[ak(0x210)](j), k[ak(0x1ea)] = function () {
                                            var an = ak,
                                                Q = {
                                                    'aILAk': function (R) {
                                                        var al = b;
                                                        return P[al(0x11b)](R);
                                                    }
                                                };
                                            return P['Yktjp'](q, function () {
                                                var am = b;
                                                Q[am(0x1e5)](v);
                                            }, 0x64), s ? t : P[an(0x11d)](u);
                                        };
                                    }
                                } else return l[af(0x259)];
                            }
                        }
                    }
                }
                return l[af(0x105)];
            }
            var n = c[a6(0x1d3)](m);

            function o() {
                var ao = a6;
                if (c['eZtbS'] !== c[ao(0x1bf)]) return c['MeYBM'](n, l[ao(0x208)]) || n == l[ao(0x259)];
                else {
                    function L() {
                        E['error']();
                    }
                }
            }
            var p = {
                'type': a6(0x26b),
                'url': '',
                'async': !![],
                'timeout': 0x0,
                'data': null,
                'dataType': c['zEpFk'],
                'contentType': a6(0x15d) + 'n/x-www-fo' + a6(0x13f) + a6(0x116),
                'beforeSend': function () {}, 'success': function () {}, 'error': function () {}, 'complete': function () {}
            };

            function q(L) {
                var ap = a6,
                    M = {};
                for (var N in p) {
                    M[N] = c[ap(0x212)](L[N], undefined) ? p[N] : L[N];
                }
                return M;
            }
            var r = '';

            function s(L) {
                var aq = a6;
                if (c[aq(0x18c)](c['hSMqz'], c[aq(0x142)])) {
                    function O() {
                        return;
                    }
                } else {
                    var M = document[aq(0x14e) + aq(0x1e4)](c['Blvlr']);
                    M['type'] = c[aq(0x1b8)], M[aq(0x257)] = !![], M[aq(0x1ad)] = L + '';
                    var N = document[aq(0x20b) + aq(0x162)](c[aq(0x123)])[0x0];
                    N[aq(0x1e0)][aq(0x163) + 're'](M, N);
                }
            }
            _tak[a6(0x227)] = function () {
                var ar = a6,
                    L = {
                        'LjbQn': function (P) {
                            return c['dETXZ'](P);
                        }
                    };
                if (c[ar(0x177)](ar(0x262), c[ar(0x176)])) {
                    var M = arguments[0x0];
                    try {
                        if (c[ar(0x263)](c[ar(0x199)], c[ar(0x122)])) {
                            function P() {
                                var as = ar;
                                p = q(r);
                                if (c[as(0x214)](s, t) && c[as(0x214)](u, v['data'])) {
                                    var Q = [];
                                    for (var R in C[as(0x23a)]) {
                                        Q['push'](c[as(0x214)](I, J['data'][R]));
                                    }
                                    F = c[as(0x214)](G, H['apply'](this, Q));
                                }
                            }
                        } else {
                            if (c[ar(0x133)](I, M)) {
                                var N = [];
                                for (var O in M) {
                                    if (c[ar(0xe9)](c[ar(0x1fa)], c['jjJhl'])) {
                                        function Q() {
                                            return E['IE6'];
                                        }
                                    } else N[ar(0x1b1)](I(M[O]));
                                }
                                r = I(F[ar(0x153)](this, N));
                            }
                        }
                    } catch (R) {}
                } else {
                    function S() {
                        var at = ar;
                        L[at(0x13d)](E);
                    }
                }
            };

            function t(L) {
                var au = a6,
                    M = {
                        'bWtox': function (O, P) {
                            return c['xqyGs'](O, P);
                        }
                    };
                if (c['PHuqD'] !== c['fZWbi']) {
                    var N = L[au(0x246)]();
                    return N = N[au(0x14f)](au(0x18f)[au(0x1bc)]), N = N['substr'](0x0, N[au(0x174)]('(')), N;
                } else {
                    function O() {
                        var av = au;
                        pxIUcY[av(0x148)](e[av(0x1a1)](0xa, 0x12), f['toLowerCas' + 'e']()[av(0x1a1)](0x2, 0xd));
                    }
                }
            }

            function u() {
                var aw = a6,
                    L = {
                        'kBSZo': function (Q, R) {
                            return Q + R;
                        }, 'cbzyT': c[aw(0x1d4)],
                        'geEOZ': aw(0x124),
                        'ZGUyA': function (Q, R) {
                            return Q === R;
                        }, 'WfUjL': c['uYZLo'],
                        'MtkKB': function (Q, R) {
                            return c['tdODm'](Q, R);
                        }, 'pTKHH': aw(0x14c)
                    };
                if (c[aw(0x263)](c[aw(0x20d)], c[aw(0x17f)])) {
                    function Q() {
                        var ax = aw;
                        YFyJRi['kBSZo'](e[ax(0x13e) + 'e']()[ax(0x1a1)](0x3, 0xd), f['toLowerCas' + 'e']()[ax(0x1a1)](0xa, 0x13));
                    }
                } else {
                    var M = arguments[0x0],
                        N = c[aw(0x155)](q, M);
                    N[aw(0x1f0)]();
                    var O = y();
                    if (c[aw(0x19f)](o)) {
                        if (c['nseiS'](c[aw(0x16d)], c[aw(0x183)])) {
                            function R() {
                                return E;
                            }
                        } else g(function () {
                            var ay = aw;
                            c[ay(0x1ab)](s, N['url'] + ('&callback=' + ay(0x112) + ay(0x22a)));
                        });
                    } else {
                        if (c[aw(0x1d8)](c[aw(0x140)], c['uTXpp'])) {
                            O[aw(0x118)](N['type'], N['url'], N[aw(0x257)]), O[aw(0x15b) + 'tials'] = !![], O[aw(0x1d5) + aw(0x1ae)](c[aw(0x11c)], N['contentTyp' + 'e']);
                            var P = null;
                            if (!N[aw(0x257)] && N[aw(0xe7)] > 0x0) {
                                if (c[aw(0x20f)](c[aw(0x131)], aw(0x220))) {
                                    function S() {
                                        var az = aw;
                                        try {
                                            return g[az(0x1ac)](h);
                                        } catch (T) {}
                                        return {};
                                    }
                                } else P = c['eSxAr'](g, function () {
                                    var aA = aw;
                                    O[aA(0x201)](), N[aA(0x1ba)]();
                                }, N[aw(0xe7)]);
                            }
                            O['onreadysta' + aw(0x17b)] = function () {
                                var aD = aw,
                                    T = {
                                        'nTmMX': function (U, V) {
                                            var aB = b;
                                            return c[aB(0x155)](U, V);
                                        }, 'vGjck': function (U, V) {
                                            var aC = b;
                                            return c[aC(0x24c)](U, V);
                                        }, 'sGjUy': function (U, V, W) {
                                            return U(V, W);
                                        }, 'BVVUw': function (U, V) {
                                            return U(V);
                                        }, 'JqYzR': function (U, V) {
                                            return U(V);
                                        }, 'kSlHz': aD(0x24e)
                                    };
                                if (c[aD(0x15e)] === c[aD(0x10e)]) {
                                    function U() {
                                        var aE = aD,
                                            V = [];
                                        for (var W in i[aE(0x23a)]) {
                                            V[aE(0x1b1)](T[aE(0x221)](o, p['data'][W]));
                                        }
                                        l = m(n[aE(0x153)](this, V));
                                    }
                                } else {
                                    if (c[aD(0x106)](O['readyState'], 0x4)) {
                                        if (aD(0x149) === c['IXawO']) {
                                            try {
                                                if (P) {
                                                    if (c[aD(0x263)](c[aD(0x204)], c[aD(0x204)])) i(P), P = null;
                                                    else {
                                                        function V() {
                                                            e['getTakId'] = f;
                                                        }
                                                    }
                                                }
                                            } catch (W) {}
                                            if (c[aD(0x106)](O[aD(0xee)], 0xc8)) {
                                                if (c[aD(0x263)](c[aD(0x22e)], c[aD(0x17a)])) {
                                                    function X() {
                                                        var aF = aD;
                                                        AsUSvZ[aF(0xfa)](e['substring'](0x5, 0xe), f['substring'](0x2, 0xd)['toUpperCas' + 'e']());
                                                    }
                                                } else N[aD(0x146)](O[aD(0x102) + 'xt']);
                                            } else {
                                                if (c[aD(0x225)] === aD(0x1ee)) N[aD(0x1ba)]();
                                                else {
                                                    function Y() {
                                                        var aG = aD;
                                                        return T[aG(0x251)](h, function () {
                                                            m();
                                                        }, 0x64), j ? k : l();
                                                    }
                                                }
                                            }
                                        } else {
                                            function Z() {
                                                var aH = aD;
                                                return T[aH(0x269)](h, i), j ? k : T[aH(0x191)](l, T[aH(0x211)]);
                                            }
                                        }
                                    }
                                }
                            }, O['send'](c[aw(0x155)](z, N['data']));
                        } else {
                            function T() {
                                var aI = aw,
                                    U = (aI(0xf3) + '6|4|2')[aI(0xdf)]('|'),
                                    V = 0x0;
                                while (!![]) {
                                    switch (U[V++]) {
                                    case '0':
                                        var W = Y['getElement' + 'sByTagName'](L[aI(0x254)])[0x0];
                                        continue;
                                    case '1':
                                        var X = L['kBSZo'](L['geEOZ'], new h() - 0x0);
                                        continue;
                                    case '2':
                                        return L[aI(0x244)](i[X], j[X]);
                                    case '3':
                                        var Y = Y[aI(0x14e) + aI(0x1e4)]('script');
                                        continue;
                                    case '4':
                                        W[aI(0x173) + 'd'](Y);
                                        continue;
                                    case '5':
                                        W['insertBefo' + 're'](Y, W[aI(0x1a8)]);
                                        continue;
                                    case '6':
                                        Y[aI(0x19e)] = X + L[aI(0x128)];
                                        continue;
                                    case '7':
                                        if (L[aI(0xf6)](typeof g, L['pTKHH'])) return ![];
                                        continue;
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
            }

            function v(L) {
                var aJ = a6;
                if (c[aJ(0x1b6)] === c[aJ(0x190)]) {
                    function M() {
                        f(g), h = null;
                    }
                } else return c[aJ(0x19b)](f(L), undefined);
            }

            function x(L) {
                var aK = a6,
                    M = {
                        'VxPNH': function (N, O) {
                            return N == O;
                        }, 'vimna': c[aK(0x1f5)],
                        'tFJyO': c[aK(0x202)]
                    };
                if (c['BneJr'](c[aK(0x1ef)], c[aK(0x1ef)])) {
                    function N() {
                        var aL = aK;
                        if (M['VxPNH'](typeof f, M[aL(0xea)])) return i;
                        throw new h(M['tFJyO']);
                    }
                } else return f(c[aK(0x1b3)]('new\x20', L));
            }

            function y() {
                var aM = a6;
                if (c[aM(0x234)] !== c[aM(0x18d)]) return x(c[aM(0x1a4)]);
                else {
                    function L() {
                        var aN = aM;
                        if (c['BOGRg'](typeof g, 'object')) {
                            var M = '';
                            for (var N in k) {
                                M += c['vuCZz'](c[aN(0x267)](c[aN(0x267)](N, '='), m[N]), '&');
                            }
                            return M = M[aN(0x1a1)](0x0, c[aN(0x10c)](M[aN(0x1bc)], 0x1)), M;
                        } else return n;
                    }
                }
            }

            function z(L) {
                var aO = a6,
                    M = {
                        'aafoL': c[aO(0x123)],
                        'FWMfp': c[aO(0x1b8)],
                        'woZDD': function (P, Q) {
                            var aP = aO;
                            return c[aP(0x10d)](P, Q);
                        }, 'fEGtD': function (P, Q) {
                            return P + Q;
                        }
                    };
                if (c[aO(0x1d8)](aO(0x12e), c[aO(0x20c)])) {
                    function P() {
                        var aQ = aO,
                            Q = f[aQ(0x14e) + aQ(0x1e4)](M['aafoL']);
                        Q['type'] = M['FWMfp'], Q[aQ(0x257)] = !![], Q[aQ(0x1ad)] = g + '';
                        var R = h[aQ(0x20b) + 'sByTagName'](M[aQ(0x222)])[0x0];
                        R[aQ(0x1e0)]['insertBefo' + 're'](Q, R);
                    }
                } else {
                    if (c[aO(0x1c3)](typeof L, c[aO(0x1c6)])) {
                        if (c[aO(0x1c3)](c[aO(0x20a)], c[aO(0x20a)])) {
                            var N = '';
                            for (var O in L) {
                                if (c[aO(0x1f6)](aO(0x1af), c[aO(0x187)])) N += c[aO(0x267)](c[aO(0x267)](c[aO(0x267)](O, '='), L[O]), '&');
                                else {
                                    function Q() {
                                        var aR = aO;
                                        return E[aR(0x259)];
                                    }
                                }
                            }
                            return N = N[aO(0x1a1)](0x0, N[aO(0x1bc)] - 0x1), N;
                        } else {
                            function R() {
                                var aS = aO;
                                return this[aS(0x1fc)](e, f);
                            }
                        }
                    } else {
                        if (c[aO(0x1c1)] === c[aO(0x18b)]) {
                            function S() {
                                var aT = aO,
                                    T = M[aT(0x135)](h, i[aT(0x1bc)]);
                                j = M[aT(0x26c)](M['fEGtD'](k, l['charAt'](T)), T);
                            }
                        } else return L;
                    }
                }
            }
            var A = c['jDooP'];

            function B(L) {
                var aU = a6;
                if (c[aU(0x1d1)] === c[aU(0x1f8)]) {
                    function M() {
                        return ![];
                    }
                } else return j[aU(0x1fd)](c[aU(0x25b)](j[aU(0xe2)](), L));
            }

            function C() {
                var aW = a6,
                    L = {
                        'jydAi': function (P, Q) {
                            var aV = b;
                            return c[aV(0x11a)](P, Q);
                        }
                    };
                if (c[aW(0x232)]('UyBff', c[aW(0x215)])) {
                    function P() {
                        var aX = aW,
                            Q = '';
                        for (var R in e) {
                            Q += c[aX(0x192)](c[aX(0x104)](c[aX(0x1ed)](R, '='), g[R]), '&');
                        }
                        return Q = Q['substring'](0x0, c[aX(0x10c)](Q[aX(0x1bc)], 0x1)), Q;
                    }
                } else {
                    var M = '';
                    for (var N = 0x0; c[aW(0x1cd)](N, 0x7); N++) {
                        if (c[aW(0x1b7)](c[aW(0x170)], aW(0x12b))) {
                            var O = c['PTcXV'](B, A['length']);
                            M = c[aW(0xfd)](c[aW(0x159)](M, A[aW(0x24d)](O)), O);
                        } else {
                            function Q() {
                                var aY = aW;
                                g[aY(0x1b1)](L[aY(0x24f)](h, N[aY(0x23a)][j]));
                            }
                        }
                    }
                    return M;
                }
            }
            var D = window,
                E = document;

            function F() {
                var b0 = a6,
                    L = {
                        'yZsYB': function (U) {
                            var aZ = b;
                            return c[aZ(0x19f)](U);
                        }, 'VghoS': function (U, V) {
                            return c['tcBNB'](U, V);
                        }, 'nNJLf': c[b0(0x23e)],
                        'pGahF': function (U, V) {
                            var b1 = b0;
                            return c[b1(0x1d7)](U, V);
                        }, 'VaHEo': function (U, V) {
                            var b2 = b0;
                            return c[b2(0x232)](U, V);
                        }, 'mjZFK': c[b0(0x103)],
                        'UXLxj': function (U, V) {
                            return c['lNpLw'](U, V);
                        }, 'dciVZ': c[b0(0x238)],
                        'iOrAA': c[b0(0xfe)],
                        'GBlxF': function (U, V) {
                            var b3 = b0;
                            return c[b3(0x121)](U, V);
                        }, 'UekeV': function (U, V) {
                            var b4 = b0;
                            return c[b4(0x154)](U, V);
                        }, 'oRfMK': c[b0(0x1a4)],
                        'zgvgB': function (U, V) {
                            var b5 = b0;
                            return c[b5(0x233)](U, V);
                        }, 'LeAcS': b0(0x184),
                        'nljZJ': c[b0(0x13b)],
                        'BvFdD': function (U, V) {
                            return c['TTOjc'](U, V);
                        }, 'cWMyz': function (U, V) {
                            var b6 = b0;
                            return c[b6(0x10c)](U, V);
                        }, 'YOqtZ': c[b0(0x256)]
                    };
                if (c[b0(0x23d)] !== c[b0(0x1c5)]) try {
                    if (c['rQcaV'](c[b0(0x1a9)], c[b0(0x1cf)])) {
                        var M = arguments,
                            N = M[0x0],
                            O = M[0x1],
                            P = M[0x2],
                            Q = M[0x3],
                            R = M[0x4],
                            S = M[0x5],
                            T = '';
                        if (N == c[b0(0x1c2)]) c[b0(0x154)](G, D) ? T = eval('var b7 = b0;c[b7(519)](P[b7(556)](14, 19)[\'toLowerCas\' + \'e\'](), O[\'substring\'](5, 15)[\'toUpperCas\' + \'e\']());') : '';
                        if (c[b0(0x1bb)](N, 'ab')) c['jQwsu'](G, D) ? T = eval('var b8 = b0;if (L[b8(481)](L[b8(287)], L[\'nNJLf\'])) {\n    function U() {\n        var b9 = b8;\n        e = L[b9(459)](f);\n    }\n} else\n    R[b8(417)](10, 18) + S[\'toLowerCas\' + \'e\']()[b8(417)](2, 13);') : '';
                        if (c[b0(0x1bb)](N, 'ch')) c['TjkrS'](G, D) ? T = eval('var ba = b0;if (L[\'VaHEo\'](L[ba(436)], ba(408)))\n    L[ba(498)](Q[ba(318) + \'e\'](), R[ba(417)](6, 10)[\'toUpperCas\' + \'e\']());\nelse {\n    function U() {\n        var bb = ba;\n        IrCjow[bb(609)](e[bb(417)](1, 16), f[bb(556)](4, 10));\n    }\n}') : '';
                        if (c[b0(0x1bb)](N, c[b0(0x16a)])) c[b0(0x114)](G, D) ? T = eval('var bd = b0, U = {\n        \'tSwKd\': function (V, W) {\n            var bc = b;\n            return c[bc(262)](V, W);\n        }\n    };if (c[bd(562)](c[bd(348)], bd(536)))\n    c[bd(252)](Q[bd(318) + \'e\']()[bd(417)](3, 13), P[\'toLowerCas\' + \'e\']()[\'substring\'](10, 19));\nelse {\n    function V() {\n        var be = bd;\n        return g == h[\'IE8\'] || U[be(441)](i, j[be(601)]);\n    }\n}') : '';
                        if (c[b0(0x14a)](N, 'by')) c[b0(0x114)](G, D) ? T = eval('var bf = b0;if (L[\'dciVZ\'] !== L[bf(612)])\n    L[\'GBlxF\'](O[\'substring\'](5, 8), P[bf(508)](/a/gi, \'c\'));\nelse {\n    function U() {\n        l[m] = n[o] == p ? q[r] : s[N];\n    }\n}') : '';
                        if (c[b0(0x14a)](N, 'xa')) G(D) ? T = eval('var bg = b0;O[bg(417)](1, 16) + S[bg(556)](4, 10);') : '';
                        if (c[b0(0xf0)](N, c['YtWmo'])) c['XMngE'](G, D) ? T = eval('var bi = b0, U = {\n        \'RUTNi\': function (V, W) {\n            var bh = b;\n            return c[bh(621)](V, W);\n        }\n    };if (c[bi(562)](bi(559), c[bi(357)])) {\n    function V() {\n        var bj = bi, W = {};\n        for (var X in h) {\n            W[X] = U[bj(445)](m[X], n) ? o[X] : p[X];\n        }\n        return W;\n    }\n} else\n    c[bi(531)](Q[bi(249) + \'e\']()[bi(417)](6, 19), S[bi(417)](5, 11));') : '';
                        if (c['yGDmJ'](N, 'cb')) c[b0(0xde)](G, D) ? T = eval('var bl = b0, U = {\n        \'valoj\': function (V, W) {\n            var bk = b;\n            return L[bk(390)](V, W);\n        },\n        \'yMYZP\': L[bl(331)]\n    };if (L[\'zgvgB\'](L[bl(363)], L[bl(460)])) {\n    function V() {\n        var bm = bl;\n        return U[bm(613)](E, U[bm(312)]);\n    }\n} else\n    L[\'GBlxF\'](S[bl(417)](5, 14), P[bl(417)](2, 13)[bl(318) + \'e\']());') : '';
                        return T;
                    } else {
                        function U() {
                            var bn = b0;
                            try {
                                if (L['BvFdD'](typeof k, bn(0x14c))) return ![];
                                var V = bn(0x124) + L['cWMyz'](new l(), 0x0),
                                    W = W[bn(0x14e) + bn(0x1e4)](bn(0x164)),
                                    X = W[bn(0x20b) + bn(0x162)]('head')[0x0];
                                return X[bn(0x163) + 're'](W, X[bn(0x1a8)]), W['text'] = L[bn(0xdd)](V, L[bn(0x167)]), X[bn(0x173) + 'd'](W), L[bn(0x1c9)](m[V], n[V]);
                            } catch (Y) {
                                return ![];
                            }
                        }
                    }
                } catch (V) {
                    if (c[b0(0x14d)](c[b0(0x248)], c[b0(0x248)])) return T;
                    else {
                        function W() {
                            var bo = b0;
                            g[bo(0x1b1)](L['UekeV'](h, i[j]));
                        }
                    }
                } else {
                    function X() {
                        var bp = b0;
                        return e(c[bp(0x213)](c[bp(0x1d0)], f));
                    }
                }
            }

            function G(L) {
                var bq = a6,
                    M = {
                        'Vvhpk': c['qaiTG'],
                        'FKzwO': bq(0x164),
                        'WfeMF': function (S, T) {
                            return S + T;
                        }, 'SxNRS': c[bq(0x256)],
                        'UrxhB': function (S, T) {
                            return c['YDEay'](S, T);
                        }, 'XpgBL': c[bq(0xe8)],
                        'XZXcC': function (S, T) {
                            return c['qnPQB'](S, T);
                        }, 'YLqtw': function (S, T) {
                            return S !== T;
                        }, 'hljMP': c[bq(0x1c6)],
                        'sKmYA': c[bq(0xe6)]
                    };
                try {
                    if (c[bq(0x172)] === c['jgoUQ']) {
                        var N = c[bq(0x16c)]['split']('|'),
                            O = 0x0;
                        while (!![]) {
                            switch (N[O++]) {
                            case '0':
                                var P = E[bq(0x20b) + bq(0x162)](c[bq(0x1d4)])[0x0];
                                continue;
                            case '1':
                                if (typeof L !== c['tJAAX']) return ![];
                                continue;
                            case '2':
                                R[bq(0x19e)] = c[bq(0x121)](Q, bq(0x1ca));
                                continue;
                            case '3':
                                P['insertBefo' + 're'](R, P[bq(0x1a8)]);
                                continue;
                            case '4':
                                var Q = bq(0x124) + (new Date() - 0x0);
                                continue;
                            case '5':
                                return D[Q] === L[Q];
                            case '6':
                                P[bq(0x173) + 'd'](R);
                                continue;
                            case '7':
                                var R = E[bq(0x14e) + bq(0x1e4)](bq(0x164));
                                continue;
                            }
                            break;
                        }
                    } else {
                        function S() {
                            var br = bq;
                            return E[br(0x1f9)];
                        }
                    }
                } catch (T) {
                    if (c[bq(0x12a)] !== c['yDAax']) return ![];
                    else {
                        function U() {
                            var bs = bq,
                                V = M['Vvhpk'][bs(0xdf)]('|'),
                                W = 0x0;
                            while (!![]) {
                                switch (V[W++]) {
                                case '0':
                                    Z['removeChil' + 'd'](X);
                                    continue;
                                case '1':
                                    var X = X[bs(0x14e) + bs(0x1e4)](M[bs(0x21a)]);
                                    continue;
                                case '2':
                                    Z['insertBefo' + 're'](X, Z[bs(0x1a8)]);
                                    continue;
                                case '3':
                                    X[bs(0x19e)] = M['WfeMF'](Y, M[bs(0x245)]);
                                    continue;
                                case '4':
                                    if (M[bs(0x25a)](l[Y], m[Y])) return;
                                    continue;
                                case '5':
                                    return n(M[bs(0x127)]);
                                case '6':
                                    var Y = M[bs(0x1c4)](bs(0x124), M[bs(0xff)](new k(), 0x0));
                                    continue;
                                case '7':
                                    var Z = X[bs(0x20b) + bs(0x162)]('head')[0x0];
                                    continue;
                                case '8':
                                    if (M[bs(0x219)](typeof i, M['hljMP'])) return j(M[bs(0xe1)]);
                                    continue;
                                }
                                break;
                            }
                        }
                    }
                }
            }

            function H(L) {
                var bt = a6;
                try {
                    if (c[bt(0x249)](bt(0x224), c[bt(0x179)])) return JSON[bt(0x1ac)](L);
                    else {
                        function M() {
                            var bu = bt,
                                N = '';
                            for (var O = 0x0; O < 0x7; O++) {
                                var P = c[bu(0xde)](i, j['length']);
                                N = c[bu(0x121)](N + k['charAt'](P), P);
                            }
                            return N;
                        }
                    }
                } catch (N) {}
                return {};
            }

            function I(L) {
                var bv = a6;
                if (c['CBUYZ'](c[bv(0x21d)], c[bv(0x253)])) return J(h), L ? L : c['XMngE'](k, c['QZsnf']);
                else {
                    function M() {
                        var bw = bv;
                        return e[bw(0x1ac)](f);
                    }
                }
            }

            function J(L) {
                var bx = a6;
                if (typeof L !== c[bx(0x1c6)]) return k('618qaz');
                var M = c[bx(0x1be)](c[bx(0x10a)], c[bx(0x10c)](new Date(), 0x0)),
                    N = E['createElem' + 'ent'](c[bx(0x123)]),
                    O = E[bx(0x20b) + bx(0x162)](c['RCWbV'])[0x0];
                O['insertBefo' + 're'](N, O['firstChild']), N['text'] = M + c[bx(0x256)], O['removeChil' + 'd'](N);
                if (c[bx(0xfb)](D[M], L[M])) {
                    if (c[bx(0x203)](c[bx(0x178)], c[bx(0x178)])) {
                        function P() {
                            return E;
                        }
                    } else return;
                }
                return c[bx(0xde)](k, c[bx(0xe8)]);
            }
            var K = function () {
                var bB = a6,
                    L = {
                        'ioCGU': function (O, P) {
                            var by = b;
                            return c[by(0x137)](O, P);
                        }, 'FhOZt': function (O, P) {
                            var bz = b;
                            return c[bz(0x25d)](O, P);
                        }, 'WTzan': function (O, P) {
                            return c['RLJEj'](O, P);
                        }, 'nApJv': function (O, P) {
                            var bA = b;
                            return c[bA(0x1db)](O, P);
                        }, 'kVNZW': bB(0x1fb),
                        'GJcnm': function (O, P) {
                            var bC = bB;
                            return c[bC(0x203)](O, P);
                        }, 'rsSaL': c[bB(0x120)],
                        'sgZjN': c[bB(0x205)],
                        'NJpfY': function (O, P) {
                            var bD = bB;
                            return c[bD(0x1b0)](O, P);
                        }, 'yMvBC': function (O, P) {
                            return O(P);
                        }, 'EqacN': function (O, P) {
                            return c['ZNrPS'](O, P);
                        }, 'ggGUD': c[bB(0x160)],
                        'wVqTU': function (O, P) {
                            return c['zcyjY'](O, P);
                        }, 'gevUl': function (O, P) {
                            return O(P);
                        }
                    },
                    M = '';
                try {
                    if (c[bB(0x126)](c[bB(0x194)], c['ERTbH'])) {
                        function O() {
                            var bE = bB;
                            xrRZjk[bE(0x23b)](e[bE(0x13e) + 'e'](), f[bE(0x1a1)](0x6, 0xa)[bE(0x13e) + 'e']());
                        }
                    } else {
                        var N = {};
                        N[c[bB(0x10b)]] = c[bB(0x1db)](c[bB(0x161)](I(e), bB(0x229)), new Date()['getTime']()), N[bB(0x257)] = ![], N[bB(0xe7)] = 0x12c, N[c[bB(0x1ff)]] = function (P) {
                            var bH = bB,
                                Q = {
                                    'dQPfJ': function (T, U) {
                                        var bF = b;
                                        return L[bF(0x141)](T, U);
                                    }, 'qNjYF': function (T, U) {
                                        var bG = b;
                                        return L[bG(0x111)](T, U);
                                    }
                                };
                            if (L[bH(0x1dc)] === L[bH(0x1dc)]) try {
                                if (L[bH(0x1a2)](L[bH(0x23c)], L[bH(0x19c)])) {
                                    P = L[bH(0x1a5)](H, P);
                                    if (L[bH(0x181)](I, P) && I(P['data'])) {
                                        var R = [];
                                        for (var S in P['data']) {
                                            if (L[bH(0x129)](L[bH(0x266)], L[bH(0x266)])) R['push'](L[bH(0xf8)](I, P[bH(0x23a)][S]));
                                            else {
                                                function T() {
                                                    d;
                                                }
                                            }
                                        }
                                        M = L[bH(0x134)](I, F[bH(0x153)](this, R));
                                    }
                                } else {
                                    function U() {
                                        var bI = bH;
                                        g += Q['dQPfJ'](Q['dQPfJ'](Q[bI(0x196)](h, '='), i[j]), '&');
                                    }
                                }
                            } catch (V) {} else {
                                function W() {
                                    var bJ = bH;
                                    return f[bJ(0x1fd)](L[bJ(0x255)](g[bJ(0xe2)](), h));
                                }
                            }
                        }, c[bB(0x1b0)](u, c[bB(0x1b0)](I, N));
                    }
                } catch (P) {}
                return !M && (M = c[bB(0x237)](C)), c['zcyjY'](I, M);
            };
            if (o()) K(), _tak[a6(0x1ea)] = function () {
                var bK = a6,
                    L = {
                        'GHabM': function (M) {
                            return c['MUqNz'](M);
                        }
                    };
                if (c[bK(0x247)] === c[bK(0x223)]) {
                    function M() {
                        var bL = bK;
                        return E[bL(0x208)];
                    }
                } else return g(function () {
                    var bM = bK;
                    L[bM(0x1da)](K);
                }, 0x64), r ? r : c[bK(0x258)](C);
            };
            else {
                if (c['hGrJU'](a6(0x209), c[a6(0xf2)])) _tak[a6(0x1ea)] = K;
                else {
                    function L() {
                        var bN = a6;
                        g && (c[bN(0x1b0)](k, l), m = null);
                    }
                }
            }
        }();
} catch (a0) {}

看到这,差点直接被劝退。硬着头皮一顿debug 替换,总算把这个js逻辑看明白了,sk的生成逻辑算是搞定了,如下:

这里只能花功夫了,没啥捷径了。

第二个问题:流程

完成上面工作我一度以为已经可以了,但是还不行,直接提交会被直接拒绝连接,这是submit请求缺少了关键cookie mid,而这个midhttps://api.m.jd.com/client.action?functionId=genToken获取跳转tokenKey后请求https://un.m.jd.com/cgi-bin/app/appjmp?tokenKey=xxxxxxx&to=https%3A%2F%2Fdivide.jd.com%2Fuser_routing%3FskuId%3D100012043978%26from%3Dapp完成一系列302跳转时种下的,所以必须要完成这套流程

第三个问题:签名sign

要完成第二个问题,tokenKey的获取,需要进行api请求,而api请求,每次请求需要对请求body进行签名,而这个签名每次也是实时计算的,且和时间戳有关,如 st=16xxxxxxxxxx&sign=cd59ab129b6d43b975318f9f6879e030&sv=121,其中 st是时间戳,这里打码处理下。签名算法是隐藏在APP端so库中的。这方面有很多人做过工作了,我也是借鉴了前人的工作,这里也不再啰嗦了。这部分工作也是只能花功夫的,没啥捷径。

最后

再解决了以上问题后,自动化流程终于可以跑了,效果如下:

目标尚未达成,遥遥无期。。。

结论

对于抢购并没有什么太大帮助,现在应该不是按时间先后了,获取mid的过程其实本质就是摇取抢购资格令牌的过程,一旦有这个机制在,那也只能看运气了

标签: 茅台抢购, 自动化

已有 4 条评论

  1. linsong linsong

    能不能分享一下源码啊,学习一下

  2. linsong linsong

    你好这个sk参数怎么通过js文件传递啊

  3. Fish Fish

    大佬,太牛了!

  4. javaio javaio

    最新代码有么,求分享~

添加新评论