关于加速乐cookie加密的分析

声明:该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关

一、加速乐特点

  1. 加速乐参数:__jsluid_s ,是加速乐拼音简称 jsl
  2. 请求情况:
    • 第一次:状态码 521,响应 cookie 为 __jsluid_s,返回 js 代码,通过 js 代码生成新 cookie,  __jsl_clearance_s
    • 第二次:带上上次 cookie 请求,状态码 521,返回 js 代码(加密方式有MD5,SHA1, SHA256),重新生成 __jsl_clearance_s
    • 第三次:带上第二次的 cookie,正常请求

二、过程分析和代码实现

请求网址:https://www.mafengwo.cn/

 第一次请求:

document.cookie由下面返回的代码生成

document.cookie = ('_') + ('_') + ('j') + ('s') + ('l') + ('_') + ('c') + ('l') + ('e') + ('a') + ('r') + ('a') + ('n') + ('c') + ('e') + ('_') + ('s') + ('=') + ((+true) + '') + (1 + 6 + '') + ((+true) + '') + (1 + 7 + '') + (9 + '') + (~~false + '') + (-~{} + '') + ((1 << 1) + '') + ((1 + [0]) / [2] + '') + ([3] * (3) + '') + ('.') + (-~false + '') + (~~'' + '') + ((1 << 3) + '') + ('|') + ('-') + (-~{} + '') + ('|') + ('e') + ('G') + ('I') + ('R') + ('Q') + ('H') + ('G') + ('o') + ('H') + ('c') + (~~{} + '') + ('a') + ('D') + ('p') + ('u') + ('u') + ('x') + ('j') + ('m') + ('j') + ('q') + ('Y') + ((1 + [2] >> 2) + '') + ('j') + ('T') + ('f') + ('I') + ('%') + ((1 + [2] >> 2) + '') + ('D') + (';') + (' ') + ('M') + ('a') + ('x') + ('-') + ('a') + ('g') + ('e') + ('=') + (1 + 2 + '') + (2 + 4 + '') + (~~false + '') + ((+false) + '') + (';') + (' ') + ('P') + ('a') + ('t') + ('h') + ('=') + ('/') + (';') + (' ') + ('S') + ('a') + ('m') + ('e') + ('S') + ('i') + ('t') + ('e') + ('=') + ('N') + ('o') + ('n') + ('e') + (';') + (' ') + ('S') + ('e') + ('c') + ('u') + ('r') + ('e');    

在控制台打印得到新生成cookie,__jsl_clearance_s的明文信息:

__jsl_clearance_s=1718901259.108|-1|eGIRQHGoHc0aDpuuxjmjqY3jTfI%3D; Max-age=3600; Path=/; SameSite=None; Secure

实际上第二次请求的cookie,可以看出是去掉了后面的Max-age=3600; Path=/; SameSite=None; Secure

1718901259.108|-1|eGIRQHGoHc0aDpuuxjmjqY3jTfI%3D

第一次请求python代码实现:

import requests
import execjs
import re


def fir_req():
    headers = {
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
        "Cache-Control": "no-cache",
        "Connection": "keep-alive",
        "Pragma": "no-cache",
        "Sec-Fetch-Dest": "document",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "none",
        "Sec-Fetch-User": "?1",
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
        "^sec-ch-ua": "^\\^Microsoft",
        "sec-ch-ua-mobile": "?0",
        "^sec-ch-ua-platform": "^\\^Windows^^^"
    }
    url = "https://www.mafengwo.cn/i/5376978.html"
    response = requests.get(url, headers=headers)
    __jsl_clearance_s = execjs.eval(re.findall("document.cookie=(.*?);lo", response.text)[0]).split("e_s=")[-1].split(";")[0]
    __jsluid_s = response.cookies.get('__jsluid_s')
    print(__jsl_clearance_s, __jsluid_s)


fir_req()

第二次请求:

使用hook脚本定位cookie加密位置

(function () {
    cookieTemp = document.cookie;
    Object.defineProperty(document, 'cookie', {
        set: function (val) {
            if (val.indexOf('__jsl_clearance_s') != -1) {
                debugger;
            }
            console.log('Hook捕获到cookie设置->', val);
            cookieTemp = val;
        },
        get: function () {
            return cookieTemp;
        },
    });
})()

跟栈

在处理相关代码时,可以看到返回的是经过 OB 混淆后的代码。这个JS代码是变化的,每次请求返回的代码不是固定的,但是代码逻辑是一样的,本次请求中,Cookie 的赋值位置为:

document[_0xdc3c('0x15e', 'tl@D') + 'ie'] = _0xd3bab4;

在控制台解码:

document["cookie"] = _0xd3bab4

接下来,选择全扣代码,使用吐环境脚本查看缺失的环境,缺什么就补什么。

function get_enviroment(proxy_array) {
    for (var i = 0; i < proxy_array.length; i++) {
        handler = '{\n' +
            '    get: function(target, property, receiver) {\n' +
            '        console.log("方法:", "get  ", "对象:", ' +
            '"' + proxy_array[i] + '" ,' +
            '"  属性:", property, ' +
            '"  属性类型:", ' + 'typeof property, ' +
            // '"  属性值:", ' + 'target[property], ' +
            '"  属性值类型:", typeof target[property]);\n' +
            '        return target[property];\n' +
            '    },\n' +
            '    set: function(target, property, value, receiver) {\n' +
            '        console.log("方法:", "set  ", "对象:", ' +
            '"' + proxy_array[i] + '" ,' +
            '"  属性:", property, ' +
            '"  属性类型:", ' + 'typeof property, ' +
            // '"  属性值:", ' + 'target[property], ' +
            '"  属性值类型:", typeof target[property]);\n' +
            '        return Reflect.set(...arguments);\n' +
            '    }\n' +
            '}'
        eval('try{\n' + proxy_array[i] + ';\n'
            + proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}catch (e) {\n' + proxy_array[i] + '={};\n'
            + proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}')
    }
}

proxy_array = ['window', 'document', 'location', 'navigator', 'history', 'screen']


get_enviroment(proxy_array)

缺失的环境为

window = global;
navigator = {
    userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'
}

全扣代码之后要导出代码的数据,然而在 document["cookie"] = _0xd3bab4, 这一赋值语句之后打印 cookie ,console.log(document.cookie) ,控制台输出的是 undefined 。经过查看代码,发现是因为在上面使用了定时器 setTimeout ,导致已经打印完了,但是代码还没执行。可以通过将定时器置空或者删除定时器。

cookie 的值 _0xd3bab4 由下面代码生成。

var _0xd3bab4 = _0x1ee99b[_0xdc3c('0x169', 'p)D7') + 'Q'](_0x5d8c59['tn'] + '=' + _0x388eff[0x0], _0xdc3c('0x92', '[&Do') + _0xdc3c('0x44', 'I72b') + '=') + _0x5d8c59['vt'] + (_0xdc3c('0x2c', 'vjGQ') + _0xdc3c('0x38', 'a%Xx') + '\x20/');

在控制台查看每一项的值,发现_0x388eff[0x0] 是cookie值, _0x388eff的赋值语句为:

var _0x388eff = _0x27a7e7(_0x5d8c59['ct'], _0x5d8c59[_0xdc3c('0x59', 'G&aA')]);

_0x5d8c59则是由function go(_0x5d8c59)传参而来。

go函数的参数如下:

{
    "bts": ["1718908786.06|0|oKVL", "21qG3a7jxfgEGHNekECRc%3D"],
    "chars": "DZEqpWlXLBkpdjJMAjdjRx",
    "ct": "4fc6210ec2afafb9907b9e8878c4e37e72f6cedb78942d3c77aaa6e4dcb41fd1",
    "ha": "sha256",
    "is": true,
    "tn": "__jsl_clearance_s",
    "vt": "3600",
    "wt": "1500"
}

多次请求发现go里面的参数是变化的,其中:

  • tn:表示 cookie 的名字。
  • bts:是服务器返回的 cookie 组成部分。
  • chars:服务器返回的随机字符串。
  • ha:代表 cookie 的加密算法。
  • ct:cookie 经过加密后的值。

经过_0x27a7e7函数传递两个值得到正确的 cookie:

第一个值:ct,是服务器返回的 cookie 经过加密算法后生成的值

第二个值:bts参数

分析_0x27a7e7 函数

        function _0x27a7e7(_0x3d2f57, _0x49822d) {
            var _0x5df995 = _0x5d8c59[_0xdc3c('0x93', '[&Do') + 's'][_0xdc3c('0xd5', 'G%k$') + 'th'];
            for (var _0x186921 = 0x0; _0x1ee99b[_0xdc3c('0x79', 'r64s') + 'z'](_0x186921, _0x5df995); _0x186921++) {
                for (var _0x4e7fd0 = 0x0; _0x1ee99b[_0xdc3c('0x7a', 'Ehk)') + 'z'](_0x4e7fd0, _0x5df995); _0x4e7fd0++) {
                    var _0x31355c = _0x1ee99b[_0xdc3c('0x83', 'ly!k') + 'w'](_0x1ee99b[_0xdc3c('0x13c', 'a%Xx') + 'w'](_0x49822d[0x0], _0x5d8c59[_0xdc3c('0x6e', '5m@Z') + 's'][_0xdc3c('0x11c', 'mcN2') + 'tr'](_0x186921, 0x1)) + _0x5d8c59[_0xdc3c('0xff', '3UFz') + 's'][_0xdc3c('0x70', 'DpB^') + 'tr'](_0x4e7fd0, 0x1), _0x49822d[0x1]);
                    if (_0x1ee99b[_0xdc3c('0xc8', 'Sttp') + 'U'](hash, _0x31355c) == _0x3d2f57) {
                        return [_0x31355c, new Date() - _0x3f266e];
                    }
                }
            }
        }

逻辑为:

1、在循环中生成cookie,cookie值 = bts[0] + 从chars中随机取出的两个数据 + bts[1]

2、将随机生成的cookie经过,ha对应的加密算法进行加密

3、当随机生成的cookie经过加密算法后得到的值和服务器返回的ct值相等时,则证明是正确的cookie

逆向时go函数里面的参数的加密方法ha一共有三种:MD5,SHA1, SHA256, 而页面返回的js代码只携带一个ha对应的加密方法,因此需要补全加密方法,导入crypto-js包

完整JS代码为:

const CryptoJS = require('crypto-js');
function get_enviroment(proxy_array) {
    for (var i = 0; i < proxy_array.length; i++) {
        handler = '{\n' +
            '    get: function(target, property, receiver) {\n' +
            '        console.log("方法:", "get  ", "对象:", ' +
            '"' + proxy_array[i] + '" ,' +
            '"  属性:", property, ' +
            '"  属性类型:", ' + 'typeof property, ' +
            // '"  属性值:", ' + 'target[property], ' +
            '"  属性值类型:", typeof target[property]);\n' +
            '        return target[property];\n' +
            '    },\n' +
            '    set: function(target, property, value, receiver) {\n' +
            '        console.log("方法:", "set  ", "对象:", ' +
            '"' + proxy_array[i] + '" ,' +
            '"  属性:", property, ' +
            '"  属性类型:", ' + 'typeof property, ' +
            // '"  属性值:", ' + 'target[property], ' +
            '"  属性值类型:", typeof target[property]);\n' +
            '        return Reflect.set(...arguments);\n' +
            '    }\n' +
            '}'
        eval('try{\n' + proxy_array[i] + ';\n'
            + proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}catch (e) {\n' + proxy_array[i] + '={};\n'
            + proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}')
    }
}

proxy_array = ['window', 'document', 'location', 'navigator', 'history', 'screen']

window = global;
navigator = {
    userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'
}


get_enviroment(proxy_array)



// 大数组
var _0x1b44 = ['OMOcVgA=', 'KMOBw7g5', 'wr3Cm28s', 'wqXCsBBG', 'D8OmJsOP', 'R8O5VcKY', 'B8OhHsOi', 'MV9YcQ==', 'w4LDtcOXQw==', 'w7XCtDHCqg==', 'w6FlfQE=', 'FhIjCg==', 'TjjCnHg=', 'D8O5ZsKv', 'AsK/FTE=', 'HMKoSEM=', 'wpZnK8K7', 'w5lRwp3DqQ==', 'aMOXV8Kb', 'worChyXCqg==', 'wpHCuRl+', 'IsKdamk=', 'BXZtw5Q=', 'wo7DqAzCtw==', 'w5vDr8OXJw==', 'DcK4DCQ=', 'eFlnVA==', 'wqdhOcK7', 'b0J7WA==', 'HWVTw6I=', 'N0VdcQ==', 'AQxoPg==', 'V8KOK1A=', 'Z25Vwq8=', 'NMOXcj8=', 'FsOOTzs=', 'wqAHEkA=', 'VBrCkcKY', 'DsOTw609', 'wrDDpsOfBA==', 'w7XCuSzChw==', 'wqZ/OMK/', 'w57DoMKUZg==', 'f8OcaMKV', 'wqAAF1c=', 'worDssO8Gg==', 'TWFlbg==', 'YMKUw5IL', 'H8Oha8K0', 'GcKqQsOJ', 'wpHDsiNC', 'ZWpQwrU=', 'w6wfQw4=', 'YHQ9Sg==', '6K2s5rCk6amE6K6/', 'wo7DrwnCoA==', 'w6PDo8K0Pw==', 'BDxjKA==', 'wqVQG8Ki', 'w4EKwoI7', 'NMOUVBk=', 'wqbDlsONGA==', 'w6nCv2dV', 'wrVWFsKK', 'C8OMC8Kw', 'w7bDocOFKw==', 'w5FgwpnDiA==', 'IVJfw4c=', 'wpLDssOlBg==', 'w7lZMsOy', 'w6d5O8O1', 'wrvCiC/CuQ==', 'wpjCtBfCnA==', 'dsKyw6TClw==', 'NmNIw5I=', 'IMORwpXDhw==', 'fXl6ZA==', 'w4LCj1p1', 'cEtBwog=', 'RQjDsw4=', 'w7UKwoIn', 'woDDu8OcBQ==', 'R8Kdw4jDuA==', 'GW5Hw4c=', 'wozDpgFy', 'wr9dGMKk', 'JiB9Jg==', 'Pm5Gw4Q=', 'AihKGw==', 'bibCgRU=', 'GWJTWw==', 'A8O8SsKH', 'wpzDncOCFQ==', 'wr1xDcKt', 'LsKxeMOw', 'Z8Kaw43Drw==', 'D2pYw7U=', 'wpxqD8Kc', 'w5sZXjM=', 'PTY3Ow==', 'w6gWwqQX', 'FwfDnMKM', 'DnB2w6Q=', 'M0c6wrc=', 'w6IjQTI=', 'wpJTEcKh', 'CH96w48=', 'fHfDkVY=', 'MTLDnMKs', 'X29lQw==', 'wqrCt2wZ', 'ecOewpfCkw==', 'BcOOG8O6', 'wobCuA3CkQ==', 'McOTYQU=', 'wprCuBDClA==', 'wpnDjDpN', 'NMOWw7Eh', 'DEbDvWY=', 'UcK9F8Kj', 'HsKucMO8', 'w77DssOcLw==', 'w5bCrAXCuw==', 'DRPDq8Kv', 'wo8KHVU=', 'BCzDo8Kr', 'CQfDhcKB', 'wrXDpD/Chw==', 'wrrDlDzCpg==', 'IcOiwqLDiw==', 'wpklBX0=', 'wooBF1c=', 'DTHCoTA=', 'JjvCiSc=', 'DMOQw6wE', 'D3dzSA==', 'wr7DlitU', 'X3I4GQ==', 'w4tWIMO5', 'F8KxU0c=', 'wp9SHMKI', 'AGxjw4s=', 'Y8KWR0E=', 'K8OdScK0', 'EWLDnnE=', 'PcOGw64H', 'Bj0BHA==', 'w4LCmxnChg==', 'VHZ9Yw==', 'w5ZaXQI=', 'wrLCtQrCvA==', 'CsOjaMKw', 'wpjCg8KoGg==', 'MnFiw6E=', 'ByJgSQ==', 'P8OHwrTDqg==', 'L8ONWys=', 'w5PCihfCiQ==', 'w7vDr8KNCw==', 'eRXCnEg=', 'wot2CMKF', 'Flx+Tg==', 'WMKyCsO3', 'w4FOUQI=', 'XWrDin4=', 'EMKme8Ot', 'FHt8w4o=', 'w4BlwqbDtg==', 'wrw1Pko=', 'w58uLcK/', 'wrPCqz54', 'YElkwqY=', 'V8OUwr/Cpw==', 'wqnClyjCtg==', 'wpx0FMKF', 'wrXDsCd3', 'B8OqH8OF', 'wrTDiC9U', 'w5LDnsK7Dw==', 'NyR7Fg==', 'w6gDwqkM', 'wqrCuETDpg==', 'DcONRC0=', 'AsKYa1s=', 'PU9Bw4o=', 'woLDoS5U', 'I8OjCsOn', 'az/CoXQ=', 'W8OZS8Kn', 'LsK0bcOK', 'w7dhNsOu', 'wqrDlMOAEA==', 'LsOHw6QY', 'c2bDkns=', 'wpcAHg==', 'w6XClTLCpA==', 'JMOwXj4=', 'AiPDmMKL', 'w43DmcOSOg==', 'w5ZyasKi', 'Ei7Ckzw=', 'JxZHXg==', 'w6LCgl1J', 'wqbDsMOKEw==', 'EDUZBw==', 'wqLDoBjDqA==', 'w7t7cgU=', 'w5FyacKi', 'KMOXSjI=', 'wpwsNmA=', 'w4zDrMOWKg==', 'wpjDuinCsw==', 'DU5xSw==', 'EMKie8Ov', 'CcOLWA==', 'NmRNw4U=', 'w5LCun9G', 'w4DCjVlB', 'AcO7wq/DgA==', 'EyNcbA==', 'D1RWRg==', 'w4LCqmFy', 'w7ZoIT0=', 'OUhdw6o=', 'wrXCgsK3IA==', 'V27DtHc=', 'CT9Vwpk=', 'wpDClkY+', 'QRrCi3o=', 'wpNJEcKz', 'JHJfw78=', 'GCgaFQ==', 'HmVDcQ==', 'wrbCtxVN', 'OsOLWRA=', 'eW3Dn0k=', 'Iz3Cjjk=', 'TsOFWcK/', 'w4bChk9X', 'JFlIw6U=', 'w7LDr8KJCw==', 'DMOuBcOy', 'IXNKw4I=', 'F8OuCcOx', 'wpvCpcKyHQ==', 'FMOeYQ==', 'w70PwrgV', 'XsOQwoLClg==', 'wo57HsKV', 'acOJV8Kd', 'wrZPFcKm', 'DMKdU2A=', 'WQjDtC8=', 'KsK9dVo=', 'w4kFTRE=', 'wpEsPlk=', 'BcOTIMO3', 'wpfDuCzCjw==', 'w65wKyM=', 'IyXCgRg=', 'w6DDusKDDQ==', 'w4nCi0BC', 'cMOcwpPCmQ==', 'egN3w7o=', 'w4nDicOUBQ==', 'wpjCoyvCiw==', 'QVd4wqc=', 'RMKIwo7Diw==', 'QTHDhw==', 'w7fDusKkOQ==', 'O8O1asKz', 'w6vDk8OXJw==', 'wrPDtsOXLQ==', 'wqfDnztz', 'bAPDqzA=', 'P8OQWw8=', 'wqLCvBxG', 'eQnDlwo=', 'W8OieMKv', 'wozDuwhU', 'wp9dCMKj', 'ThXCrkk=', 'GCs8Mw==', 'w5bDqsOJDg==', 'BH/DtFQ=', 'woVeEMK6', 'wo1hEMKS', 'w4vCrWdL', 'CBHClzE=', 'JAnDjMKB', 'IsKKZ0g=', 'csKhw53Dgg==', 'GsOCBcOB', 'w40BRSA=', 'CMO1YA8=', 'OHbDvFU=', 'BW9lw74=', 'w57DtMOmJg==', 'wrHCshTCkA==', 'ET1+WA==', 'wpEuLV4=', 'VcOpwpfCkw==', 'KChqSw==', 'w7nDhMKkMw==', 'IGxFw7c=', 'bmfDkEs=', 'wozCrh9e', 'aA/Cs38=', 'YSLCmWk=', 'C1NCw6c=', 'CUkAcQ==', 'UMKOLx4=', 'w4RXwqvDkQ==', 'ZDnDtBA=', 'OUPDukk=', 'dERwQA==', 'aCHCmXE=', 'LMOIH8Of', 'QwLDqBI=', 'AcOuwpDDgA==', 'B8OqH8O6', 'FHxzcw==', 'JTdq', 'YsOVTcKt', 'J0nDu1w=', 'UWdKwow=', 'wrglI30=', 'KMOxwrTDlw==', 'wp3DqAzCqw==', 'dHfDnEg=', 'bkxYXA==', 'wr7Dmi9A', 'w6BLM8OJ', 'w6FoI8O5', 'w6ZsdCU=', 'w7t8wovDoQ==', 'L8OSSsKs', 'wofCrmMq', 'Ejw9OQ==', 'NsOoasKX', 'BVJew6k=', 'HRzDmMKS', 'F8O+AsOd', 'OisjNQ==', 'w4/ClENR', 'BTNhQw==', 'w6TCiBrCjg==', 'wolGN8KR', 'w4IneQ0=', 'cHDDvXA=', 'w5TDjMOaJg==', 'EsOxZQI=', 'VhrCn8KY', 'FCM+Kg==', 'BsOjMsO8', 'wrJTGsKv', 'wpJUH8K4', 'dcKBw5vDmg==', 'wpAaCmE=', 'PsKgeMO1', 'wpDCqcKRHw==', 'HsKpdcOr', 'CjY+', 'wqDDg8O3JQ==', 'XsK/w5/DhQ==', 'wqNiLsKy', 'wr5YJ8KN', 'fVpASA==', 'b1RGwoc=', 'CRrCkDM='];
// 对大数组进行偏移的设置
(function (_0x615d91, _0x1b448b) {
    var _0xdc3c6d = function (_0x142570) {
        while (--_0x142570) {
            _0x615d91['push'](_0x615d91['shift']());
        }
    };
    _0xdc3c6d(++_0x1b448b);
}(_0x1b44, 0x7d));
// ob混淆的解密函数
var _0xdc3c = function (_0x615d91, _0x1b448b) {
    _0x615d91 = _0x615d91 - 0x0;
    var _0xdc3c6d = _0x1b44[_0x615d91];
    if (_0xdc3c['KOEPxH'] === undefined) {
        (function () {
            var _0x129928 = function () {
                var _0x5796b5;
                try {
                    _0x5796b5 = Function('return\x20(function()\x20' + '{}.constructor(\x22return\x20this\x22)(\x20)' + ');')();
                } catch (_0x17867f) {
                    _0x5796b5 = window;
                }
                return _0x5796b5;
            };
            var _0x31928a = _0x129928();
            var _0x950ed5 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
            _0x31928a['atob'] || (_0x31928a['atob'] = function (_0x53e699) {
                    var _0x5eab95 = String(_0x53e699)['replace'](/=+$/, '');
                    var _0x5e3dbc = '';
                    for (var _0x4f8687 = 0x0, _0xb0dbd4, _0x4c0e40, _0x3f4769 = 0x0; _0x4c0e40 = _0x5eab95['charAt'](_0x3f4769++); ~_0x4c0e40 && (_0xb0dbd4 = _0x4f8687 % 0x4 ? _0xb0dbd4 * 0x40 + _0x4c0e40 : _0x4c0e40,
                    _0x4f8687++ % 0x4) ? _0x5e3dbc += String['fromCharCode'](0xff & _0xb0dbd4 >> (-0x2 * _0x4f8687 & 0x6)) : 0x0) {
                        _0x4c0e40 = _0x950ed5['indexOf'](_0x4c0e40);
                    }
                    return _0x5e3dbc;
                }
            );
        }());
        var _0x53a7b7 = function (_0x374f78, _0x25e65a) {
            var _0x2583a6 = [], _0x2ad3f5 = 0x0, _0x940f8f, _0x4f8ee8 = '', _0x56d616 = '';
            _0x374f78 = atob(_0x374f78);
            for (var _0x44c901 = 0x0, _0x2b3e1d = _0x374f78['length']; _0x44c901 < _0x2b3e1d; _0x44c901++) {
                _0x56d616 += '%' + ('00' + _0x374f78['charCodeAt'](_0x44c901)['toString'](0x10))['slice'](-0x2);
            }
            _0x374f78 = decodeURIComponent(_0x56d616);
            var _0x11daca;
            for (_0x11daca = 0x0; _0x11daca < 0x100; _0x11daca++) {
                _0x2583a6[_0x11daca] = _0x11daca;
            }
            for (_0x11daca = 0x0; _0x11daca < 0x100; _0x11daca++) {
                _0x2ad3f5 = (_0x2ad3f5 + _0x2583a6[_0x11daca] + _0x25e65a['charCodeAt'](_0x11daca % _0x25e65a['length'])) % 0x100;
                _0x940f8f = _0x2583a6[_0x11daca];
                _0x2583a6[_0x11daca] = _0x2583a6[_0x2ad3f5];
                _0x2583a6[_0x2ad3f5] = _0x940f8f;
            }
            _0x11daca = 0x0;
            _0x2ad3f5 = 0x0;
            for (var _0x5a2744 = 0x0; _0x5a2744 < _0x374f78['length']; _0x5a2744++) {
                _0x11daca = (_0x11daca + 0x1) % 0x100;
                _0x2ad3f5 = (_0x2ad3f5 + _0x2583a6[_0x11daca]) % 0x100;
                _0x940f8f = _0x2583a6[_0x11daca];
                _0x2583a6[_0x11daca] = _0x2583a6[_0x2ad3f5];
                _0x2583a6[_0x2ad3f5] = _0x940f8f;
                _0x4f8ee8 += String['fromCharCode'](_0x374f78['charCodeAt'](_0x5a2744) ^ _0x2583a6[(_0x2583a6[_0x11daca] + _0x2583a6[_0x2ad3f5]) % 0x100]);
            }
            return _0x4f8ee8;
        };
        _0xdc3c['yTaHUI'] = _0x53a7b7;
        _0xdc3c['BbGdds'] = {};
        _0xdc3c['KOEPxH'] = !![];
    }
    var _0x142570 = _0xdc3c['BbGdds'][_0x615d91];
    if (_0x142570 === undefined) {
        if (_0xdc3c['vaOAfb'] === undefined) {
            _0xdc3c['vaOAfb'] = !![];
        }
        _0xdc3c6d = _0xdc3c['yTaHUI'](_0xdc3c6d, _0x1b448b);
        _0xdc3c['BbGdds'][_0x615d91] = _0xdc3c6d;
    } else {
        _0xdc3c6d = _0x142570;
    }
    return _0xdc3c6d;
};
// hash函数

hash1 = {
    "sha1": function (aa) {
        return CryptoJS.SHA1(aa).toString()
    },
    "sha256": function (aa) {
        return CryptoJS.SHA256(aa).toString()
    },
    "md5": function (aa) {
        return CryptoJS.MD5(aa).toString()
    },
}
// 主要代码逻辑
function go(_0x5d8c59) {
    if (_0x5d8c59['ha'] === 'sha1'){
        hash = hash1['sha1']
    }
    if (_0x5d8c59['ha'] === 'md5'){
        hash = hash1['md5']
    }
    if (_0x5d8c59['ha'] === 'sha256'){
        hash = hash1['sha256']
    }

    var _0x291b08 = {};
    _0x291b08[_0xdc3c('0x1c', '#@f@') + 'H'] = _0xdc3c('0xf8', 'Y#Wa') + _0xdc3c('0xed', 'G%k$');
    _0x291b08[_0xdc3c('0xeb', 'o$cH') + 'z'] = function (_0x44e0a1, _0x4d5a9f) {
        return _0x44e0a1 < _0x4d5a9f;
    }
    ;
    _0x291b08[_0xdc3c('0xb6', 'c$aF') + 'w'] = function (_0x206cc7, _0x582abc) {
        return _0x206cc7 + _0x582abc;
    }
    ;
    _0x291b08[_0xdc3c('0x166', 'a%Xx') + 'U'] = function (_0x1de06b, _0x9c3d59) {
        return _0x1de06b(_0x9c3d59);
    }
    ;
    _0x291b08[_0xdc3c('0x8c', 'a%Xx') + 'A'] = _0xdc3c('0xb9', 'q97j') + _0xdc3c('0x15c', 'ou]J') + _0xdc3c('0x4a', 'vjGQ') + _0xdc3c('0x21', 'mcN2') + '6';
    _0x291b08[_0xdc3c('0xad', 'a%Xx') + 'F'] = function (_0x57dd7b, _0x3e871c) {
        return _0x57dd7b < _0x3e871c;
    }
    ;
    _0x291b08[_0xdc3c('0x14c', 'ha9@') + 'w'] = function (_0x214efd, _0x2c433e, _0x5e44e5) {
        return _0x214efd(_0x2c433e, _0x5e44e5);
    }
    ;
    _0x291b08[_0xdc3c('0x130', 'r64s') + 'T'] = function (_0x251845, _0x10e2e3) {
        return _0x251845 - _0x10e2e3;
    }
    ;
    _0x291b08[_0xdc3c('0x123', 'q97j') + 'O'] = function (_0x40c685, _0x1f0612, _0xca0062) {
        return _0x40c685(_0x1f0612, _0xca0062);
    }
    ;
    _0x291b08[_0xdc3c('0x3e', 'c$aF') + 'K'] = function (_0xa8d1a4, _0x241cfd) {
        return _0xa8d1a4 << _0x241cfd;
    }
    ;
    _0x291b08[_0xdc3c('0x1f', 'G&aA') + 'Q'] = function (_0x5bc1a7, _0x543071) {
        return _0x5bc1a7 + _0x543071;
    }
    ;
    _0x291b08[_0xdc3c('0x91', 'wGvq') + 'K'] = _0xdc3c('0xfc', 'X^K4') + 'E';
    _0x291b08[_0xdc3c('0x47', 'msr#') + 'd'] = function (_0x2a1c44, _0x1ae87) {
        return _0x2a1c44 === _0x1ae87;
    }
    ;
    _0x291b08[_0xdc3c('0xcd', 'q97j') + 'B'] = _0xdc3c('0xf7', '7ihb') + 'c';
    _0x291b08[_0xdc3c('0x134', 'vjGQ') + 'r'] = function (_0x24639d, _0x446fc5) {
        return _0x24639d(_0x446fc5);
    }
    ;
    _0x291b08[_0xdc3c('0x3b', 'ha9@') + 'B'] = function (_0xa2f1ed, _0x33b7a6) {
        return _0xa2f1ed(_0x33b7a6);
    }
    ;
    _0x291b08[_0xdc3c('0x5d', 'ReTq') + 'Q'] = function (_0x389317, _0x4b1f6f, _0x309889) {
        return _0x389317(_0x4b1f6f, _0x309889);
    }
    ;
    var _0x1ee99b = _0x291b08;

    function _0x5cb9af() {
        var _0x2b63e0 = window[_0xdc3c('0x15f', '#@f@') + _0xdc3c('0x4', 'ReTq') + 'r'][_0xdc3c('0x43', 'ZdCa') + _0xdc3c('0x164', 'Ehk)') + 't']
            , _0x1a76d2 = [_0x1ee99b[_0xdc3c('0x96', 'msr#') + 'H']];
        for (var _0x596ed0 = 0x0; _0x1ee99b[_0xdc3c('0x3f', 'DpB^') + 'z'](_0x596ed0, _0x1a76d2[_0xdc3c('0x148', '&bxg') + 'th']); _0x596ed0++) {
            if (_0x2b63e0[_0xdc3c('0x6', '%^Ru') + _0xdc3c('0x78', 'wGvq')](_0x1a76d2[_0x596ed0]) != -0x1) {
                return !![];
            }
        }
        if (window[_0xdc3c('0xea', 'JJDs') + _0xdc3c('0xcb', 'BT)[') + _0xdc3c('0x45', '%^Ru')] || window[_0xdc3c('0x20', '$Gqz') + _0xdc3c('0xdc', 'mMs3')] || window[_0xdc3c('0x89', 'Ehk)') + _0xdc3c('0x128', 'Sttp')] || window[_0xdc3c('0x116', 'Sttp') + _0xdc3c('0xc9', 'W@@4') + 'r'][_0xdc3c('0x76', 'ly!k') + _0xdc3c('0x105', 'vjGQ') + 'r'] || window[_0xdc3c('0x136', 'mFCq') + _0xdc3c('0x36', 'MXab') + 'r'][_0xdc3c('0x3c', 'p)D7') + _0xdc3c('0x34', 'p)D7') + _0xdc3c('0xc6', 'DpB^') + _0xdc3c('0xb7', 'c$aF') + 'e'] || window[_0xdc3c('0x9b', 'tl@D') + _0xdc3c('0xc3', 'ly!k') + 'r'][_0xdc3c('0xd', 'kIcJ') + _0xdc3c('0xd7', 'ha9@') + _0xdc3c('0x14b', 'MXab') + _0xdc3c('0xbf', 'c$aF') + _0xdc3c('0xd0', 'kIcJ')]) {
            return !![];
        }
    }
    ;
    if (_0x5cb9af()) {
        return;
    }
    var _0x3f266e = new Date();

    function _0x27a7e7(_0x3d2f57, _0x49822d) {
        var _0x5df995 = _0x5d8c59[_0xdc3c('0x93', '[&Do') + 's'][_0xdc3c('0xd5', 'G%k$') + 'th'];
        for (var _0x186921 = 0x0; _0x1ee99b[_0xdc3c('0x79', 'r64s') + 'z'](_0x186921, _0x5df995); _0x186921++) {
            for (var _0x4e7fd0 = 0x0; _0x1ee99b[_0xdc3c('0x7a', 'Ehk)') + 'z'](_0x4e7fd0, _0x5df995); _0x4e7fd0++) {
                var _0x31355c = _0x1ee99b[_0xdc3c('0x83', 'ly!k') + 'w'](_0x1ee99b[_0xdc3c('0x13c', 'a%Xx') + 'w'](_0x49822d[0x0], _0x5d8c59[_0xdc3c('0x6e', '5m@Z') + 's'][_0xdc3c('0x11c', 'mcN2') + 'tr'](_0x186921, 0x1)) + _0x5d8c59[_0xdc3c('0xff', '3UFz') + 's'][_0xdc3c('0x70', 'DpB^') + 'tr'](_0x4e7fd0, 0x1), _0x49822d[0x1]);
                if (_0x1ee99b[_0xdc3c('0xc8', 'Sttp') + 'U'](hash, _0x31355c) == _0x3d2f57) {
                    return [_0x31355c, new Date() - _0x3f266e];
                }
            }
        }
    }
    ;var _0x388eff = _0x27a7e7(_0x5d8c59['ct'], _0x5d8c59[_0xdc3c('0x59', 'G&aA')]);
    if (_0x388eff) {
        // var _0x5774fc;
        // if (_0x5d8c59['wt']) {
        //     if (_0x1ee99b[_0xdc3c('0x80', ')BFX') + 'd'](_0x1ee99b[_0xdc3c('0x7c', 'DpB^') + 'B'], _0x1ee99b[_0xdc3c('0x12e', 'MXab') + 'B'])) {
        //         _0x5774fc = _0x1ee99b[_0xdc3c('0x149', 'p)D7') + 'r'](parseInt, _0x5d8c59['wt']) > _0x388eff[0x1] ? _0x1ee99b[_0xdc3c('0x122', '[&Do') + 'T'](_0x1ee99b[_0xdc3c('0xd6', 'wGvq') + 'B'](parseInt, _0x5d8c59['wt']), _0x388eff[0x1]) : 0x1f4;
        //     } else {
        //         utftext += String[_0xdc3c('0x2e', 'ou]J') + _0xdc3c('0x53', 'G&aA') + _0xdc3c('0x6c', 'Y#Wa')](c);
        //     }
        // } else {
        //     _0x5774fc = 0x5dc;
        // }
        // _0x1ee99b[_0xdc3c('0xa5', ')BFX') + 'Q'](setTimeout,
        !function () {
            var _0x3f26be = {};
            _0x3f26be[_0xdc3c('0x4e', 'mcN2') + 'G'] = _0x1ee99b[_0xdc3c('0x2d', 'Y#Wa') + 'A'];
            _0x3f26be[_0xdc3c('0x144', 'vP7U') + 't'] = function (_0x4617d5, _0x1a3467) {
                return _0x1ee99b[_0xdc3c('0x16a', 'ZdCa') + 'F'](_0x4617d5, _0x1a3467);
            }
            ;
            _0x3f26be[_0xdc3c('0x17', 'q97j') + 'O'] = function (_0x3240f3, _0x37a62d, _0x15c5f2) {
                return _0x3240f3(_0x37a62d, _0x15c5f2);
            }
            ;
            _0x3f26be[_0xdc3c('0x9c', 'c$aF') + 'T'] = function (_0x28a328, _0x5bfc92, _0x48bc4b) {
                return _0x28a328(_0x5bfc92, _0x48bc4b);
            }
            ;
            _0x3f26be[_0xdc3c('0xaf', 'W@@4') + 'B'] = function (_0x42428e, _0x227aa7) {
                return _0x42428e < _0x227aa7;
            }
            ;
            _0x3f26be[_0xdc3c('0x23', 'tl@D') + 'l'] = function (_0x57b1d1, _0x288aff, _0x163c24) {
                return _0x1ee99b[_0xdc3c('0x14c', 'ha9@') + 'w'](_0x57b1d1, _0x288aff, _0x163c24);
            }
            ;
            _0x3f26be[_0xdc3c('0xf0', 'vjGQ') + 'n'] = function (_0x163645, _0x254b92) {
                return _0x1ee99b[_0xdc3c('0x167', 'G&aA') + 'T'](_0x163645, _0x254b92);
            }
            ;
            _0x3f26be[_0xdc3c('0xdf', 'rhLv') + 'Z'] = function (_0x40dfd3, _0x250553, _0x578355) {
                return _0x1ee99b[_0xdc3c('0x5b', '2VrC') + 'O'](_0x40dfd3, _0x250553, _0x578355);
            }
            ;
            _0x3f26be[_0xdc3c('0x126', 'JJDs') + 'I'] = function (_0x4f645c, _0xa598fc, _0x59d287) {
                return _0x1ee99b[_0xdc3c('0x3', 'BT)[') + 'O'](_0x4f645c, _0xa598fc, _0x59d287);
            }
            ;
            _0x3f26be[_0xdc3c('0x145', 'r64s') + 'j'] = function (_0x29caca, _0x5b3414) {
                return _0x1ee99b[_0xdc3c('0xe5', 'ly!k') + 'K'](_0x29caca, _0x5b3414);
            }
            ;
            _0x3f26be[_0xdc3c('0x3a', ')BFX') + 's'] = function (_0x16cdfd, _0x182426) {
                return _0x1ee99b[_0xdc3c('0x137', 'tnD*') + 'Q'](_0x16cdfd, _0x182426);
            }
            ;
            var _0x585bca = _0x3f26be;
            if (_0x1ee99b[_0xdc3c('0x9', 'ZdCa') + 'K'] === _0x1ee99b[_0xdc3c('0x97', 'Y#Wa') + 'K']) {
                var _0xd3bab4 = _0x1ee99b[_0xdc3c('0x169', 'p)D7') + 'Q'](_0x5d8c59['tn'] + '=' + _0x388eff[0x0], _0xdc3c('0x92', '[&Do') + _0xdc3c('0x44', 'I72b') + '=') + _0x5d8c59['vt'] + (_0xdc3c('0x2c', 'vjGQ') + _0xdc3c('0x38', 'a%Xx') + '\x20/');
                if (_0x5d8c59['is']) {
                    _0xd3bab4 = _0xd3bab4 + (_0xdc3c('0x124', 'ZdCa') + _0xdc3c('0x77', 'o$cH') + _0xdc3c('0x61', '3UFz') + _0xdc3c('0x11f', 'vFY$') + _0xdc3c('0x14e', 'Y8Ci') + _0xdc3c('0xc5', 'MXab'));
                }
                document[_0xdc3c('0x15e', 'tl@D') + 'ie'] = _0xd3bab4;
                location[_0xdc3c('0xdd', '$Gqz')] = _0x1ee99b[_0xdc3c('0xda', 'G%k$') + 'Q'](location[_0xdc3c('0x15a', 'N0Jg') + _0xdc3c('0x1', 'N0Jg')], location[_0xdc3c('0x37', 'r64s') + 'ch']);
            } else {
                var _0x23fa21 = _0x585bca[_0xdc3c('0x5c', '2VrC') + 'G'][_0xdc3c('0x125', 'wGvq') + 't']('|');
                var _0x25f0a7 = 0x0;
                while (!![]) {
                    switch (_0x23fa21[_0x25f0a7++]) {
                        case '0':
                            for (var _0x4267ca = 0x0; _0x585bca[_0xdc3c('0x162', 'q97j') + 't'](_0x4267ca, m[_0xdc3c('0x74', 'ly!k') + 'th']); _0x4267ca += 0x10) {
                                _0x2defd8 = _0x2aa640[0x0];
                                _0x5f1cce = _0x2aa640[0x1];
                                _0x76e1a8 = _0x2aa640[0x2];
                                _0x16afd8 = _0x2aa640[0x3];
                                _0x5a0b48 = _0x2aa640[0x4];
                                _0x89f0e7 = _0x2aa640[0x5];
                                _0x5b8f11 = _0x2aa640[0x6];
                                _0x7b07bd = _0x2aa640[0x7];
                                for (var _0x3e0584 = 0x0; _0x3e0584 < 0x40; _0x3e0584++) {
                                    var _0x97303b = (_0xdc3c('0x11', 'sOZu') + _0xdc3c('0x8e', 'Ehk)') + _0xdc3c('0x58', 'wGvq') + _0xdc3c('0x65', '&bxg') + _0xdc3c('0x28', 'wGvq') + '|8')[_0xdc3c('0x153', 'JJDs') + 't']('|');
                                    var _0x2726d5 = 0x0;
                                    while (!![]) {
                                        switch (_0x97303b[_0x2726d5++]) {
                                            case '0':
                                                _0x5f1cce = _0x2defd8;
                                                continue;
                                            case '1':
                                                _0x17591f = _0x585bca[_0xdc3c('0xa2', '2VrC') + 'O'](safe_add, Sigma0256(_0x2defd8), Maj(_0x2defd8, _0x5f1cce, _0x76e1a8));
                                                continue;
                                            case '2':
                                                _0x89f0e7 = _0x5a0b48;
                                                continue;
                                            case '3':
                                                _0x5b8f11 = _0x89f0e7;
                                                continue;
                                            case '4':
                                                _0x5a0b48 = _0x585bca[_0xdc3c('0x1b', 'o$cH') + 'O'](safe_add, _0x16afd8, _0x3bfc1f);
                                                continue;
                                            case '5':
                                                _0x3bfc1f = _0x585bca[_0xdc3c('0x63', 'o$cH') + 'T'](safe_add, safe_add(safe_add(safe_add(_0x7b07bd, Sigma1256(_0x5a0b48)), Ch(_0x5a0b48, _0x89f0e7, _0x5b8f11)), _0xe84577[_0x3e0584]), _0x3c1cb4[_0x3e0584]);
                                                continue;
                                            case '6':
                                                _0x7b07bd = _0x5b8f11;
                                                continue;
                                            case '7':
                                                _0x76e1a8 = _0x5f1cce;
                                                continue;
                                            case '8':
                                                _0x2defd8 = safe_add(_0x3bfc1f, _0x17591f);
                                                continue;
                                            case '9':
                                                _0x16afd8 = _0x76e1a8;
                                                continue;
                                            case '10':
                                                if (_0x585bca[_0xdc3c('0x9e', 'mFCq') + 'B'](_0x3e0584, 0x10))
                                                    _0x3c1cb4[_0x3e0584] = m[_0x3e0584 + _0x4267ca];
                                                else
                                                    _0x3c1cb4[_0x3e0584] = _0x585bca[_0xdc3c('0x42', '[&Do') + 'l'](safe_add, safe_add(_0x585bca[_0xdc3c('0x5', '%^Ru') + 'l'](safe_add, Gamma1256(_0x3c1cb4[_0x585bca[_0xdc3c('0x4d', '2VrC') + 'n'](_0x3e0584, 0x2)]), _0x3c1cb4[_0x3e0584 - 0x7]), Gamma0256(_0x3c1cb4[_0x3e0584 - 0xf])), _0x3c1cb4[_0x585bca[_0xdc3c('0x8d', 'ou]J') + 'n'](_0x3e0584, 0x10)]);
                                                continue;
                                        }
                                        break;
                                    }
                                }
                                _0x2aa640[0x0] = _0x585bca[_0xdc3c('0xef', 'S%Zf') + 'l'](safe_add, _0x2defd8, _0x2aa640[0x0]);
                                _0x2aa640[0x1] = safe_add(_0x5f1cce, _0x2aa640[0x1]);
                                _0x2aa640[0x2] = _0x585bca[_0xdc3c('0xb2', 'vFY$') + 'Z'](safe_add, _0x76e1a8, _0x2aa640[0x2]);
                                _0x2aa640[0x3] = safe_add(_0x16afd8, _0x2aa640[0x3]);
                                _0x2aa640[0x4] = safe_add(_0x5a0b48, _0x2aa640[0x4]);
                                _0x2aa640[0x5] = _0x585bca[_0xdc3c('0xbc', 'vP7U') + 'I'](safe_add, _0x89f0e7, _0x2aa640[0x5]);
                                _0x2aa640[0x6] = safe_add(_0x5b8f11, _0x2aa640[0x6]);
                                _0x2aa640[0x7] = safe_add(_0x7b07bd, _0x2aa640[0x7]);
                            }
                            continue;
                        case '1':
                            var _0x2defd8, _0x5f1cce, _0x76e1a8, _0x16afd8, _0x5a0b48, _0x89f0e7, _0x5b8f11, _0x7b07bd,
                                _0x4267ca, _0x3e0584;
                            continue;
                        case '2':
                            var _0x3bfc1f, _0x17591f;
                            continue;
                        case '3':
                            var _0xe84577 = new Array(0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0xfc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x6ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2);
                            continue;
                        case '4':
                            var _0x2aa640 = new Array(0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19);
                            continue;
                        case '5':
                            var _0x3c1cb4 = new Array(0x40);
                            continue;
                        case '6':
                            return _0x2aa640;
                        case '7':
                            m[l >> 0x5] |= 0x80 << 0x18 - l % 0x20;
                            continue;
                        case '8':
                            m[_0x585bca[_0xdc3c('0x4f', 'G%k$') + 'j'](_0x585bca[_0xdc3c('0xfb', 'ly!k') + 's'](l, 0x40) >> 0x9, 0x4) + 0xf] = l;
                            continue;
                    }
                    break;
                }
            }
        }();
    } else {
        alert(_0xdc3c('0x12b', 'r64s') + '失败');
    }
}


;

function get_cookie(go_code){
    go(go_code)
    console.log(document.cookie)
    return document.cookie
}


get_cookie({
        "bts": ["1718938718.396|0|Uuz", "Xzno%2Bt8luD63N8qv25uSWg%3D"],
        "chars": "aXdhc4YnWKefbmowdMowYR",
        "ct": "cd90336a3bfbc0e2f9c7d4864942407ab886bd44",
        "ha": "sha1",
        "is": true,
        "tn": "__jsl_clearance_s",
        "vt": "3600",
        "wt": "1500"
    })

第二次请求的python代码为:

import requests
import execjs
import re


def fir_req():
    headers = {
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
        "Cache-Control": "no-cache",
        "Connection": "keep-alive",
        "Pragma": "no-cache",
        "Sec-Fetch-Dest": "document",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "none",
        "Sec-Fetch-User": "?1",
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
        "^sec-ch-ua": "^\\^Microsoft",
        "sec-ch-ua-mobile": "?0",
        "^sec-ch-ua-platform": "^\\^Windows^^^"
    }
    url = "https://www.mafengwo.cn/i/5376978.html"
    response = requests.get(url, headers=headers)
    __jsl_clearance_s = execjs.eval(re.findall("document.cookie=(.*?);lo", response.text)[0])
    __jsluid_s = response.cookies.get('__jsluid_s')
    return __jsl_clearance_s, __jsluid_s


def two_req():
    js = execjs.compile(open('加速乐.js', encoding='utf-8').read())
    __jsl_clearance_s, __jsluid_s = fir_req()
    cookies = {
        '__jsl_clearance_s': __jsl_clearance_s.split('e_s=')[-1],
        '__jsluid_s': __jsluid_s
    }
    headers = {
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
        "Cache-Control": "no-cache",
        "Connection": "keep-alive",
        "Pragma": "no-cache",
        "Sec-Fetch-Dest": "document",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "none",
        "Sec-Fetch-User": "?1",
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
        "^sec-ch-ua": "^\\^Microsoft",
        "sec-ch-ua-mobile": "?0",
        "^sec-ch-ua-platform": "^\\^Windows^^^"
    }
    url = "https://www.mafengwo.cn/i/5376978.html"
    response = requests.get(url, headers=headers, cookies=cookies)
    go_code = re.findall('};go\((.*?)\)</sc', response.text)
    print(go_code[0])
    __jsl_clearance_s = js.call('get_cookie', execjs.eval(go_code[0]))
    cookies['__jsl_clearance_s'] = __jsl_clearance_s.split('_s=')[-1]
    print(cookies)


two_req()

第三次请求:

python代码:

import requests
import execjs
import re


def fir_req():
    headers = {
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
        "Cache-Control": "no-cache",
        "Connection": "keep-alive",
        "Pragma": "no-cache",
        "Sec-Fetch-Dest": "document",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "none",
        "Sec-Fetch-User": "?1",
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
        "^sec-ch-ua": "^\\^Microsoft",
        "sec-ch-ua-mobile": "?0",
        "^sec-ch-ua-platform": "^\\^Windows^^^"
    }
    url = "https://www.mafengwo.cn/i/5376978.html"
    response = requests.get(url, headers=headers)
    __jsl_clearance_s = execjs.eval(re.findall("document.cookie=(.*?);lo", response.text)[0])
    __jsluid_s = response.cookies.get('__jsluid_s')
    return __jsl_clearance_s, __jsluid_s
    # print(response)


def two_req():
    js = execjs.compile(open('加速乐.js', encoding='utf-8').read())
    __jsl_clearance_s, __jsluid_s = fir_req()
    cookies = {
        '__jsl_clearance_s': __jsl_clearance_s.split('e_s=')[-1],
        '__jsluid_s': __jsluid_s
    }
    print(cookies)
    headers = {
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
        "Cache-Control": "no-cache",
        "Connection": "keep-alive",
        "Pragma": "no-cache",
        "Sec-Fetch-Dest": "document",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "none",
        "Sec-Fetch-User": "?1",
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
        "^sec-ch-ua": "^\\^Microsoft",
        "sec-ch-ua-mobile": "?0",
        "^sec-ch-ua-platform": "^\\^Windows^^^"
    }
    url = "https://www.mafengwo.cn/i/5376978.html"
    response = requests.get(url, headers=headers, cookies=cookies)
    go_code = re.findall('};go\((.*?)\)</sc', response.text)
    print(go_code[0])
    __jsl_clearance_s = js.call('get_cookie', execjs.eval(go_code[0]))
    cookies['__jsl_clearance_s'] = __jsl_clearance_s.split('_s=')[-1]
    return cookies


def get_Data():
    cookies = two_req()
    headers = {
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
        "Cache-Control": "no-cache",
        "Connection": "keep-alive",
        "Pragma": "no-cache",
        "Sec-Fetch-Dest": "document",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "none",
        "Sec-Fetch-User": "?1",
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
        "^sec-ch-ua": "^\\^Microsoft",
        "sec-ch-ua-mobile": "?0",
        "^sec-ch-ua-platform": "^\\^Windows^^^"
    }
    url = "https://www.mafengwo.cn/i/5376978.html"
    response = requests.get(url, headers=headers, cookies=cookies)
    print(response.text)


get_Data()
  • 36
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值