Js逆向——捅了【马蜂窝】的ob混淆与加速乐

首先进行抓包分析
在这里插入图片描述
要请求到页面真实信息,需要发送三次请求,前两次是521,第一次请求返回第二次请求所需cookie——__jsluid_h,另外响应内容中隐藏了第二个cookie参数__jsl_clearance。第一次请求代码如下:

headers = {
    'Proxy-Connection': 'keep-alive',
    'Pragma': 'no-cache',
    'Cache-Control': 'no-cache',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36',
    '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.9',
    'Referer': 'http://www.mafengwo.cn/i/20013958.html',
    'Accept-Language': 'zh-CN,zh;q=0.9',
}
response = session.get('http://www.mafengwo.cn/i/23704915.html', headers=headers, verify=False)
print(response.text)
__jsluid_h = response.headers['Set-Cookie']

__jsluid_h可以直接拿到,另外响应内容如下:

<script>document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('=')+(+!+[]+'')+((1+[2])/[2]+'')+(2+3+'')+(3+3+'')+(6+'')+(-~[5]+'')+((1+[2])/[2]+'')+((1<<2)+'')+((2<<1)+'')+(2+4+'')+('.')+(2+7+'')+(4+'')+(3+'')+('|')+('-')+(-~0+'')+('|')+('C')+('D')+('m')+('Z')+('K')+('%')+(-~1+'')+('F')+('s')+('a')+('Y')+(-~[6]+'')+('e')+([2]*(3)+'')+('q')+('B')+('m')+('%')+(-~1+'')+('B')+('n')+('G')+('V')+('z')+(2+2+'')+('Z')+('v')+('l')+(5+'')+('U')+('I')+('%')+(-~[2]+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+((1+[2]>>2)+'')+([2]*(3)+'')+((+false)+'')+(~~false+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search</script>

再eval执行响应内容拿到cookie参数__jsl_clearance

text = response.text.replace('<script>document.cookie=', '').replace(
        'location.href=location.pathname+location.search</script>', '')
    jsl = """
        function main(text) {
        return eval(text)
    }
    """
    __jsl_clearance = execjs.compile(jsl).call('main', text)
    print(__jsl_clearance)

然后就可以拿着两个cookie参数发送第二次请求了。
第二次请求与第一次区别就是加了cookie。就不贴代码了
第二次请求的响应内容就是要解析的js代码了,需要逆向拿到第二次请求所需的__jsl_clearance才能做第三次请求。首先在第二次请求的响应内容中拿到下方这个对象,这是逆向出__jsl_clearance所需参数。

go({
    "bts": ["1656666892.655|0|u1Z", "CF66L%2FBHLAJE%2BTNOL4qqIY%3D"],
    "chars": "CwUuswlWjBMJPUR6Rc6yYC",
    "ct": "8bf7c727738d1c275ada2ff2fb4036ddd4c11586aeb86ac2d9427e79765d6621",
    "ha": "sha256",
    "tn": "__jsl_clearance",
    "vt": "3600",
    "wt": "1500"
}

bts、chars、ct都是动态的,每次抓取都要在第二次请求中截取出来。后面有用。
接下来就是第三次请求,要解析出__jsl_clearance 的生成过程。
这里我使用fd hook的方式,定位参数生成位置
Hook代码:

(function (){
 var aaa = "";
    Object.defineProperty(document, 'cookie', {
        set: function(val) {
if (val.indexOf('__jsl_clearance') != -1){
debugger
}
            console.log(val)
            aaa = val;
            return val;
        },
        get: function(){
            return aaa;
        }
    });
})();

在这里插入图片描述
成功hook,跟上一级堆栈
在这里插入图片描述
document[_0x2ec8(‘0x8f’, ‘4lvl’) + ‘ie’] 就是要逆向的参数值
需要注意的是,这里的混淆是动态的,也就是说每次刷新你看到的参数名都是不同的,所以你打开的页面跟我的看起来肯定是不一样的。
在这里插入图片描述
在下一行打上断点,走下来。执行一下document[_0x2ec8(‘0x8f’, ‘4lvl’) + ‘ie’]就可以确定了document[_0x2ec8(‘0x8f’, ‘4lvl’) + ‘ie’] 就是要逆向的参数值
先把这行代码抠出来,顺便改个名

__jsl_clearance = _0x280d98[_0x2ec8('0x11', 'U^zS') + 'M'](_0x280d98[_0x2ec8('0x63', 'F2lQ') + 'M'](_0x280d98[_0x2ec8('0x1e', 'z*df') + 'M'](_0x325366['tn'], '=') + _0x4f17b5[0x0] + _0x280d98[_0x2ec8('0x5', 'xIIr') + 'A'], _0x325366['vt']), _0x2ec8('0x34', 'z%X@') + _0x2ec8('0xbf', 'xIIr') + '\x20/');

可以执行一下,然后缺啥补啥
在这里插入图片描述
首先是报这个_0x280d98未定义,可以看出这是一个对象,往上找生成过程
在这里插入图片描述
在432行可以看到_0x280d98在此定义并且赋值,而赋值的_0x116f6d又在上面创建并添加对象,我们就把这上面的代码都扣下来。
接下来不再详述,反正就是报什么未定义就去找
过程并不复杂,需要注意的是前面提过的,要把固定的go里的参数修改成你第二次请求抓取到的。
扣下来的完整代码如下:

var _0xbef7 = ['ZDrDhXE=', 'wpBkwpDClg==', 'fMK9WAU=', 'XwPCmcKz', 'wrB8wqDCqQ==', 'YMOoJsOL', 'HsKFLsK1', 'HsOEHmU=', 'URvDsSE=', 'KMKnwrDDmw==', 'YRfCtw0=', 'ZcK6WjU=', 'bS0Iw4M=', 'VsOMD8Od', 'w4Quw4jClg==', 'wqEFwp1Y', 'IMO3BXo=', 'woFywqkk', 'w4gkw4/CmQ==', 'w7YiE20=', 'wrzDrsKuNg==', 'w5/DrHtd', 'wqIHwpNe', 'w7IIMWg=', 'wpjDryLCow==', 'w4/Dhy3CvA==', 'wqorwpJ6', 'wqkcAVs=', 'wrJvw7XDsw==', 'KkvDpMOz', 'NgPDoAM=', 'wrMww5gc', 'RMOfS8Oq', 'wrV6w6kj', 'w7/DjnZj', 'QMKhEnY=', 'woAQwqY=', 'w7oOC8Kn', 'N17DpsOO', 'wrQ6wpZ3', 'w58mJcKw', 'woAVwrQQ', 'OMK8w5dM', 'wrjDgX1K', 'RsO0UcOL', 'woI5Sgc=', 'JRvDqBk=', 'eMKBI1U=', 'wrpgEig=', 'G0DClig=', 'wo8xwqgc', 'YMO5c8OI', 'JcOhwq7Drw==', 'wovCu8KowqU=', 'T8OnZFo=', 'O8OsDFc=', 'wr40C14=', 'PsKEwpnDqA==', 'woZ3eWY=', 'a8OUKMOT', 'w7UPAMKm', 'PMK7wo/Dhg==', 'YsK1egE=', 'w7QNw5zCtA==', 'w4QQOTI=', 'PsO7NHQ=', 'w4sZFQQ=', 'S8KCw596', 'wovDv8KXMw==', 'aSXDjcOn', 'woINbCs=', 'IQAXw6Y=', 'dcOACsOI', 'T8OLYMOc', 'wq/Dj8KxMw==', 'ZsKzKFg=', 'woRiwqLCpQ==', 'wqDDpDbChQ==', 'w7U7DVg=', 'bC5NGg==', 'IMKAA8KY', 'wrFkFTQ=', 'wpvDhMKgJA==', 'TcOXR8O+', 'Rw/DqcOD', 'WxrDui8=', 'wqbDoMKFw5A=', 'EjRvw7o=', 'woV/bXc=', 'M8KcwovDhw==', 'XcOqQ8Ol', 'w6oEMX0=', 'UMOoGA4=', 'wpMEwogS', 'FnHDkMOQ', 'wqd2woge', 'dAjDrMOG', 'NDRUw5g=', 'QcKSSMOp', 'ScKyw49C', 'UsO6U2E=', 'wqAAw58z', 'SyNOEA==', 'UsOeFMOh', 'w44Ef8KU', 'YMOPKsO2', '6Kyq5rGD6auq6K6G', 'BcOpK34=', 'NxrCiA==', 'woxXw5zDkQ==', 'VcOZYw==', 'wrh0wpAr', 'BUPDscOO', 'dMO+VnI=', 'dzPDicOd', 'agvDoXw=', 'wqk9wpEB', 'DMKNYG4=', 'HcOrGAs=', 'aBHDqgU=', 'aQ7DmE0=', 'PsKLLMKc', 'XiHCmsKq', 'w6oaAsKo', 'wrrDhsKuHA==', 'w6ANQsK/', 'N8O5w4kO', 'Pl/DmcO1', 'GG7DlcOp', 'UTpsGA==', 'wpYrwq8o', 'QA3DjjA=', 'GcK1wq7DkQ==', 'wqbDrcKFw5c=', 'wq9vMhY=', 'w4cBKCY=', 'wo8uwrZH', 'wr5pBzU=', 'EMKdw6LDtw==', 'w6EpYMKJ', 'woR2UWQ=', 'KlDDp8Ox', 'QMKBw6ZY', 'w57Chipa', 'w7c2w4pj', 'UgjDgsOW', 'B8KdN8K2', 'BMORJHM=', 'wqk0ShE=', 'wobDozrCoQ==', 'OQoMw78=', 'wq7CtsKU', 'AlTDosOV', 'w6B8w4DCsA==', 'wrtMCgY=', 'wphrwr8B', 'DsOiwpgH', 'w7vDgWxG', 'wq3Dh8KwOA==', 'BU/DmMOZ', 'JsKdw7jDnw==', 'UBjDg2c=', 'woBuwojCjQ==', 'wrpLwpzCqQ==', 'wqFOw63Diw==', 'WDLCicKl', 'I0/DvsOI', 'woRjUUk=', 'CmDDscOY', 'bcOAMsOV', 'CVrDg8Og', 'w6bDk1RA', 'wqd8wqDCrg==', 'w63Ctgpf', 'w7I8GAE=', 'wqbDnCNT', 'wodiemI=', 'w6rCpcOBwp0=', 'w7bDiHtd', 'SjTCmsKR', 'w6w+BE4=', 'Lysnw7M=', 'w400w5/CtQ==', 'dBzDoEs=', 'N8K2H8KY', 'wr8wXxo=', 'ccKzw6do', 'T8OnXsOA', 'TcOCZV8=', 'esK1woVD', 'ZMOKccOn', 'Ozlbw40=', 'wrE+wqkX', 'wrhOBAA=', 'w4ULLCE=', 'wpMJw5Ix', 'w7IDOMKg', 'AMKBFA==', 'woUbw5sv', 'w6MDMFU='];
(function (_0x56dc74, _0xbef7e) {
    var _0x2ec8f5 = function (_0xa3d60c) {
        while (--_0xa3d60c) {
            _0x56dc74['push'](_0x56dc74['shift']());
        }
    };
    _0x2ec8f5(++_0xbef7e);
}(_0xbef7, 0x1d1));
var _0x2ec8 = function (_0x56dc74, _0xbef7e) {
    _0x56dc74 = _0x56dc74 - 0x0;
    var _0x2ec8f5 = _0xbef7[_0x56dc74];
    if (_0x2ec8['GMYMVm'] === undefined) {
        (function () {
            var _0x56e539 = function () {
                var _0xc7756;
                try {
                    _0xc7756 = Function('return\x20(function()\x20' + '{}.constructor(\x22return\x20this\x22)(\x20)' + ');')();
                } catch (_0x1b5e8a) {
                    _0xc7756 = window;
                }
                return _0xc7756;
            };
            var _0x59eb23 = _0x56e539();
            var _0x9cf7f6 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
            _0x59eb23['atob'] || (_0x59eb23['atob'] = function (_0xc831ee) {
                    var _0x514208 = String(_0xc831ee)['replace'](/=+$/, '');
                    var _0x47363c = '';
                    for (var _0x382c23 = 0x0, _0x3651e2, _0x21855c, _0x2979a4 = 0x0; _0x21855c = _0x514208['charAt'](_0x2979a4++); ~_0x21855c && (_0x3651e2 = _0x382c23 % 0x4 ? _0x3651e2 * 0x40 + _0x21855c : _0x21855c,
                    _0x382c23++ % 0x4) ? _0x47363c += String['fromCharCode'](0xff & _0x3651e2 >> (-0x2 * _0x382c23 & 0x6)) : 0x0) {
                        _0x21855c = _0x9cf7f6['indexOf'](_0x21855c);
                    }
                    return _0x47363c;
                }
            );
        }());
        var _0x5059d3 = function (_0x4a3753, _0x5f53c8) {
            var _0x490572 = [], _0x56a542 = 0x0, _0x4ef2d8, _0x163b49 = '', _0x4814fd = '';
            _0x4a3753 = atob(_0x4a3753);
            for (var _0x2c0ef5 = 0x0, _0x5d3a39 = _0x4a3753['length']; _0x2c0ef5 < _0x5d3a39; _0x2c0ef5++) {
                _0x4814fd += '%' + ('00' + _0x4a3753['charCodeAt'](_0x2c0ef5)['toString'](0x10))['slice'](-0x2);
            }
            _0x4a3753 = decodeURIComponent(_0x4814fd);
            var _0xef5ae6;
            for (_0xef5ae6 = 0x0; _0xef5ae6 < 0x100; _0xef5ae6++) {
                _0x490572[_0xef5ae6] = _0xef5ae6;
            }
            for (_0xef5ae6 = 0x0; _0xef5ae6 < 0x100; _0xef5ae6++) {
                _0x56a542 = (_0x56a542 + _0x490572[_0xef5ae6] + _0x5f53c8['charCodeAt'](_0xef5ae6 % _0x5f53c8['length'])) % 0x100;
                _0x4ef2d8 = _0x490572[_0xef5ae6];
                _0x490572[_0xef5ae6] = _0x490572[_0x56a542];
                _0x490572[_0x56a542] = _0x4ef2d8;
            }
            _0xef5ae6 = 0x0;
            _0x56a542 = 0x0;
            for (var _0x17cf94 = 0x0; _0x17cf94 < _0x4a3753['length']; _0x17cf94++) {
                _0xef5ae6 = (_0xef5ae6 + 0x1) % 0x100;
                _0x56a542 = (_0x56a542 + _0x490572[_0xef5ae6]) % 0x100;
                _0x4ef2d8 = _0x490572[_0xef5ae6];
                _0x490572[_0xef5ae6] = _0x490572[_0x56a542];
                _0x490572[_0x56a542] = _0x4ef2d8;
                _0x163b49 += String['fromCharCode'](_0x4a3753['charCodeAt'](_0x17cf94) ^ _0x490572[(_0x490572[_0xef5ae6] + _0x490572[_0x56a542]) % 0x100]);
            }
            return _0x163b49;
        };
        _0x2ec8['IcdgoY'] = _0x5059d3;
        _0x2ec8['nzYWSG'] = {};
        _0x2ec8['GMYMVm'] = !![];
    }
    var _0xa3d60c = _0x2ec8['nzYWSG'][_0x56dc74];
    if (_0xa3d60c === undefined) {
        if (_0x2ec8['SaYtRl'] === undefined) {
            _0x2ec8['SaYtRl'] = !![];
        }
        _0x2ec8f5 = _0x2ec8['IcdgoY'](_0x2ec8f5, _0xbef7e);
        _0x2ec8['nzYWSG'][_0x56dc74] = _0x2ec8f5;
    } else {
        _0x2ec8f5 = _0xa3d60c;
    }
    return _0x2ec8f5;
};

function hash(_0x44087b) {
    var _0x47b14f = {};
    _0x47b14f[_0x2ec8('0xba', 'R%7f') + 'v'] = function (_0x5d8fb4, _0x370b10) {
        return _0x5d8fb4 + _0x370b10;
    }
    ;
    _0x47b14f[_0x2ec8('0x45', 'w&%d') + 'j'] = function (_0x14c78c, _0x359e33) {
        return _0x14c78c & _0x359e33;
    }
    ;
    _0x47b14f[_0x2ec8('0xb9', 'SI5d') + 'J'] = _0x2ec8('0xa7', 'u[GW') + _0x2ec8('0x5b', 'ICoK') + _0x2ec8('0x3e', 'R8a@') + _0x2ec8('0xac', 'leOj');
    _0x47b14f[_0x2ec8('0x67', '^X16') + 'L'] = function (_0x537ac4, _0xcc96ef) {
        return _0x537ac4 >> _0xcc96ef;
    }
    ;
    _0x47b14f[_0x2ec8('0x2c', 'F2lQ') + 'z'] = function (_0x20e390, _0x1cb463) {
        return _0x20e390 + _0x1cb463;
    }
    ;
    _0x47b14f[_0x2ec8('0x47', 'v&ej') + 'F'] = function (_0x2196ca, _0x19b48f) {
        return _0x2196ca >> _0x19b48f;
    }
    ;
    _0x47b14f[_0x2ec8('0xaf', 'leOj') + 'u'] = function (_0x158201, _0x4eef9) {
        return _0x158201 + _0x4eef9;
    }
    ;
    _0x47b14f[_0x2ec8('0x0', 'n&[(') + 'e'] = function (_0x4f9de5, _0x11fd14) {
        return _0x4f9de5 * _0x11fd14;
    }
    ;
    _0x47b14f[_0x2ec8('0x46', '[J*f') + 'X'] = function (_0x3944ca, _0x29f3d1) {
        return _0x3944ca >> _0x29f3d1;
    }
    ;
    _0x47b14f[_0x2ec8('0x62', 'hteo') + 'k'] = function (_0x52c7c2, _0x172d79) {
        return _0x52c7c2 << _0x172d79;
    }
    ;
    _0x47b14f[_0x2ec8('0x2', 'ICoK') + 'a'] = function (_0x25704a, _0x23b29c) {
        return _0x25704a - _0x23b29c;
    }
    ;
    _0x47b14f[_0x2ec8('0x9e', 'BR!0') + 'W'] = function (_0x3a2364, _0x1b0667) {
        return _0x3a2364 - _0x1b0667;
    }
    ;
    _0x47b14f[_0x2ec8('0xbc', 'u^NR') + 'E'] = function (_0x464c74, _0x4fd0fc) {
        return _0x464c74 < _0x4fd0fc;
    }
    ;
    _0x47b14f[_0x2ec8('0x89', 'c[6S') + 't'] = function (_0x4624b7, _0xa21343) {
        return _0x4624b7 ^ _0xa21343;
    }
    ;
    _0x47b14f[_0x2ec8('0x59', 'w&%d') + 'a'] = function (_0xb50c4c, _0x393917) {
        return _0xb50c4c ^ _0x393917;
    }
    ;
    _0x47b14f[_0x2ec8('0xaa', 'X5%L') + 'N'] = function (_0x47f844, _0x342f0f) {
        return _0x47f844 < _0x342f0f;
    }
    ;
    _0x47b14f[_0x2ec8('0xc4', 'CNW[') + 'q'] = function (_0x4ae4d7, _0x3700d8) {
        return _0x4ae4d7 < _0x3700d8;
    }
    ;
    _0x47b14f[_0x2ec8('0x9b', 'U^zS') + 'v'] = function (_0x139796, _0x1ffc54, _0x271d37) {
        return _0x139796(_0x1ffc54, _0x271d37);
    }
    ;
    _0x47b14f[_0x2ec8('0xa8', '@cP%') + 'z'] = function (_0x46815b, _0x4b545f) {
        return _0x46815b < _0x4b545f;
    }
    ;
    _0x47b14f[_0x2ec8('0x7d', 'PKXN') + 'i'] = _0x2ec8('0x7c', '*#UM') + _0x2ec8('0x52', 'z%X@') + _0x2ec8('0x93', 'MZBG') + '6';
    _0x47b14f[_0x2ec8('0x9a', 'BR!0') + 'K'] = function (_0x198234, _0x9488a7, _0x2dd02e) {
        return _0x198234(_0x9488a7, _0x2dd02e);
    }
    ;
    _0x47b14f[_0x2ec8('0x4', 'R8a@') + 'k'] = function (_0x4c47ba, _0x3fdac9, _0x5d5546) {
        return _0x4c47ba(_0x3fdac9, _0x5d5546);
    }
    ;
    _0x47b14f[_0x2ec8('0x38', 'u[GW') + 'V'] = function (_0x1f3062, _0x7c0a40, _0x3cc529) {
        return _0x1f3062(_0x7c0a40, _0x3cc529);
    }
    ;
    _0x47b14f[_0x2ec8('0x26', 'rNZ(') + 'B'] = function (_0x4a6997, _0x32c762) {
        return _0x4a6997(_0x32c762);
    }
    ;
    _0x47b14f[_0x2ec8('0x12', 'R%7f') + 'h'] = function (_0x3c96ba, _0x35dc04) {
        return _0x3c96ba < _0x35dc04;
    }
    ;
    _0x47b14f[_0x2ec8('0x6', 'abqS') + 'a'] = function (_0xa286fb, _0x7c593d) {
        return _0xa286fb - _0x7c593d;
    }
    ;
    _0x47b14f[_0x2ec8('0x6c', 'xM@Y') + 'U'] = function (_0x13b749, _0x12deb6, _0x5b8729) {
        return _0x13b749(_0x12deb6, _0x5b8729);
    }
    ;
    _0x47b14f[_0x2ec8('0x8', 'PKXN') + 'a'] = function (_0x53f5db, _0x4b1e5e) {
        return _0x53f5db + _0x4b1e5e;
    }
    ;
    _0x47b14f[_0x2ec8('0xb', '5Q%R') + 'M'] = function (_0xc96987, _0x310af1) {
        return _0xc96987 + _0x310af1;
    }
    ;
    _0x47b14f[_0x2ec8('0x77', 'u[GW') + 'm'] = function (_0x1c5952, _0x35dd44) {
        return _0x1c5952(_0x35dd44);
    }
    ;
    var _0x17ad0e = _0x47b14f;

    function _0xaa9fc(_0x2ff948, _0x45d78f) {
        return _0x17ad0e[_0x2ec8('0xa', 'X5%L') + 'v'](_0x17ad0e[_0x2ec8('0x1f', 'R8a@') + 'j'](_0x2ff948, 0x7fffffff), _0x45d78f & 0x7fffffff) ^ _0x2ff948 & 0x80000000 ^ _0x45d78f & 0x80000000;
    }

    function _0x2ffa34(_0x4e6bdb) {
        var _0x59cda0 = _0x17ad0e[_0x2ec8('0xbe', 'n&[(') + 'J'];
        var _0x3bce24 = '';
        for (var _0x5038ab = 0x7; _0x5038ab >= 0x0; _0x5038ab--) {
            _0x3bce24 += _0x59cda0[_0x2ec8('0x7e', 'MZBG') + 'At'](_0x17ad0e[_0x2ec8('0x6d', '[J*f') + 'L'](_0x4e6bdb, _0x5038ab * 0x4) & 0xf);
        }
        return _0x3bce24;
    }

    function _0x2e8ba3(_0x1d5b44) {
        var _0x3f9144 = (_0x2ec8('0x4f', 'v&ej') + _0x2ec8('0x58', '5Q%R') + _0x2ec8('0x2b', 'R8a@'))[_0x2ec8('0x4b', 'Yi04') + 't']('|');
        var _0xbd54b8 = 0x0;
        while (!![]) {
            switch (_0x3f9144[_0xbd54b8++]) {
                case '0':
                    return _0x5622e0;
                case '1':
                    _0x5622e0[_0x5ad8be * 0x10 - 0x1] = _0x1d5b44[_0x2ec8('0x49', 'fzLR') + 'th'] * 0x8;
                    continue;
                case '2':
                    _0x5622e0[_0x41df5a >> 0x2] |= 0x80 << 0x18 - _0x17ad0e[_0x2ec8('0x92', 'c[6S') + 'j'](_0x41df5a, 0x3) * 0x8;
                    continue;
                case '3':
                    var _0x5ad8be = _0x17ad0e[_0x2ec8('0x2c', 'F2lQ') + 'z'](_0x17ad0e[_0x2ec8('0x79', 'ICoK') + 'F'](_0x17ad0e[_0x2ec8('0x18', 'CNW[') + 'u'](_0x1d5b44[_0x2ec8('0xc3', 'leOj') + 'th'], 0x8), 0x6), 0x1)
                        , _0x5622e0 = new Array(_0x17ad0e[_0x2ec8('0x42', '4lvl') + 'e'](_0x5ad8be, 0x10));
                    continue;
                case '4':
                    for (_0x41df5a = 0x0; _0x41df5a < _0x1d5b44[_0x2ec8('0xb3', 'R%7f') + 'th']; _0x41df5a++) {
                        _0x5622e0[_0x17ad0e[_0x2ec8('0x98', 'z*df') + 'X'](_0x41df5a, 0x2)] |= _0x17ad0e[_0x2ec8('0x4d', 'ICoK') + 'k'](_0x1d5b44[_0x2ec8('0x71', 'xr74') + _0x2ec8('0x5d', 'U^zS') + 'At'](_0x41df5a), _0x17ad0e[_0x2ec8('0x31', 'R8a@') + 'a'](0x18, (_0x41df5a & 0x3) * 0x8));
                    }
                    continue;
                case '5':
                    for (var _0x41df5a = 0x0; _0x41df5a < _0x17ad0e[_0x2ec8('0x17', 'Yi04') + 'e'](_0x5ad8be, 0x10); _0x41df5a++) {
                        _0x5622e0[_0x41df5a] = 0x0;
                    }
                    continue;
            }
            break;
        }
    }

    function _0x18daf1(_0x726b77, _0x540d73) {
        return _0x726b77 << _0x540d73 | _0x726b77 >>> _0x17ad0e[_0x2ec8('0x13', 'R8a@') + 'W'](0x20, _0x540d73);
    }

    function _0x1c6259(_0x332883, _0x31589b, _0x59a3f0, _0xb16a17) {
        if (_0x17ad0e[_0x2ec8('0x81', '[J*f') + 'E'](_0x332883, 0x14))
            return _0x31589b & _0x59a3f0 | ~_0x31589b & _0xb16a17;
        if (_0x17ad0e[_0x2ec8('0x33', 'SI5d') + 'E'](_0x332883, 0x28))
            return _0x17ad0e[_0x2ec8('0x83', 'leOj') + 't'](_0x17ad0e[_0x2ec8('0xa3', 'F2lQ') + 'a'](_0x31589b, _0x59a3f0), _0xb16a17);
        if (_0x332883 < 0x3c)
            return _0x17ad0e[_0x2ec8('0x7', 'rNZ(') + 'j'](_0x31589b, _0x59a3f0) | _0x17ad0e[_0x2ec8('0x7', 'rNZ(') + 'j'](_0x31589b, _0xb16a17) | _0x17ad0e[_0x2ec8('0x45', 'w&%d') + 'j'](_0x59a3f0, _0xb16a17);
        return _0x17ad0e[_0x2ec8('0x9d', 'v&ej') + 'a'](_0x31589b ^ _0x59a3f0, _0xb16a17);
    }

    function _0x18272e(_0x1fb47d) {
        return _0x17ad0e[_0x2ec8('0x94', 'rNZ(') + 'E'](_0x1fb47d, 0x14) ? 0x5a827999 : _0x1fb47d < 0x28 ? 0x6ed9eba1 : _0x17ad0e[_0x2ec8('0xc2', 'rNZ(') + 'N'](_0x1fb47d, 0x3c) ? -0x70e44324 : -0x359d3e2a;
    }

    var _0x2dd04 = _0x2e8ba3(_0x44087b);
    var _0x53f561 = new Array(0x50);
    var _0x108fb5 = 0x67452301;
    var _0x25607f = -0x10325477;
    var _0x7bcc6b = -0x67452302;
    var _0x109dd9 = 0x10325476;
    var _0x278152 = -0x3c2d1e10;
    for (var _0x306c82 = 0x0; _0x17ad0e[_0x2ec8('0x2a', 'n&[(') + 'q'](_0x306c82, _0x2dd04[_0x2ec8('0x20', 'MZBG') + 'th']); _0x306c82 += 0x10) {
        var _0x2659cb = (_0x2ec8('0x70', 'u^NR') + _0x2ec8('0x21', 'u[GW') + _0x2ec8('0x44', 'u^NR') + _0x2ec8('0x1b', 'X5%L') + _0x2ec8('0x15', 'u^NR') + '|7')[_0x2ec8('0x65', 'qQKG') + 't']('|');
        var _0xe17f19 = 0x0;
        while (!![]) {
            switch (_0x2659cb[_0xe17f19++]) {
                case '0':
                    var _0x39fa42 = _0x108fb5;
                    continue;
                case '1':
                    _0x109dd9 = _0x17ad0e[_0x2ec8('0x55', 'abqS') + 'v'](_0xaa9fc, _0x109dd9, _0x86b61a);
                    continue;
                case '2':
                    _0x25607f = _0x17ad0e[_0x2ec8('0x8e', 'n&[(') + 'v'](_0xaa9fc, _0x25607f, _0x4f3148);
                    continue;
                case '3':
                    _0x108fb5 = _0xaa9fc(_0x108fb5, _0x39fa42);
                    continue;
                case '4':
                    var _0x22d757 = _0x278152;
                    continue;
                case '5':
                    var _0x15f495 = _0x7bcc6b;
                    continue;
                case '6':
                    for (var _0x30e0f1 = 0x0; _0x17ad0e[_0x2ec8('0xb6', 'X5%L') + 'z'](_0x30e0f1, 0x50); _0x30e0f1++) {
                        var _0x2b7b4e = _0x17ad0e[_0x2ec8('0x7f', '2OmT') + 'i'][_0x2ec8('0x3a', 'leOj') + 't']('|');
                        var _0x105260 = 0x0;
                        while (!![]) {
                            switch (_0x2b7b4e[_0x105260++]) {
                                case '0':
                                    t = _0xaa9fc(_0x17ad0e[_0x2ec8('0x4a', '0M8k') + 'K'](_0xaa9fc, _0x17ad0e[_0x2ec8('0x8a', 'SaK)') + 'k'](_0x18daf1, _0x108fb5, 0x5), _0x1c6259(_0x30e0f1, _0x25607f, _0x7bcc6b, _0x109dd9)), _0xaa9fc(_0x17ad0e[_0x2ec8('0x60', 'Fl3Z') + 'V'](_0xaa9fc, _0x278152, _0x53f561[_0x30e0f1]), _0x17ad0e[_0x2ec8('0x5e', 'qQKG') + 'B'](_0x18272e, _0x30e0f1)));
                                    continue;
                                case '1':
                                    if (_0x17ad0e[_0x2ec8('0x8c', 'rNZ(') + 'h'](_0x30e0f1, 0x10)) {
                                        _0x53f561[_0x30e0f1] = _0x2dd04[_0x306c82 + _0x30e0f1];
                                    } else {
                                        _0x53f561[_0x30e0f1] = _0x18daf1(_0x53f561[_0x30e0f1 - 0x3] ^ _0x53f561[_0x17ad0e[_0x2ec8('0xc6', 'gg32') + 'a'](_0x30e0f1, 0x8)] ^ _0x53f561[_0x17ad0e[_0x2ec8('0x9c', 'xr74') + 'a'](_0x30e0f1, 0xe)] ^ _0x53f561[_0x30e0f1 - 0x10], 0x1);
                                    }
                                    continue;
                                case '2':
                                    _0x25607f = _0x108fb5;
                                    continue;
                                case '3':
                                    _0x278152 = _0x109dd9;
                                    continue;
                                case '4':
                                    _0x109dd9 = _0x7bcc6b;
                                    continue;
                                case '5':
                                    _0x7bcc6b = _0x17ad0e[_0x2ec8('0x16', 'MZBG') + 'V'](_0x18daf1, _0x25607f, 0x1e);
                                    continue;
                                case '6':
                                    _0x108fb5 = t;
                                    continue;
                            }
                            break;
                        }
                    }
                    continue;
                case '7':
                    _0x278152 = _0x17ad0e[_0x2ec8('0x32', 'ze[i') + 'U'](_0xaa9fc, _0x278152, _0x22d757);
                    continue;
                case '8':
                    var _0x4f3148 = _0x25607f;
                    continue;
                case '9':
                    _0x7bcc6b = _0x17ad0e[_0x2ec8('0xbb', 'uuAz') + 'U'](_0xaa9fc, _0x7bcc6b, _0x15f495);
                    continue;
                case '10':
                    var _0x86b61a = _0x109dd9;
                    continue;
            }
            break;
        }
    }
    return _0x17ad0e[_0x2ec8('0xb0', 'SI5d') + 'a'](_0x17ad0e[_0x2ec8('0xbd', 'z%X@') + 'a'](_0x17ad0e[_0x2ec8('0x86', 'BR!0') + 'M'](_0x2ffa34(_0x108fb5), _0x17ad0e[_0x2ec8('0xa6', '5jon') + 'm'](_0x2ffa34, _0x25607f)), _0x2ffa34(_0x7bcc6b)), _0x2ffa34(_0x109dd9)) + _0x2ffa34(_0x278152);
}

var _0x116f6d = {};
_0x116f6d[_0x2ec8('0xa9', 'xr74') + 'd'] = function (_0x10be4e, _0x1c7208, _0x16de6a) {
    return _0x10be4e(_0x1c7208, _0x16de6a);
}
;
_0x116f6d[_0x2ec8('0x19', 'PKXN') + 'w'] = function (_0x378606, _0x551eb5) {
    return _0x378606 < _0x551eb5;
}
;
_0x116f6d[_0x2ec8('0x1a', 'BR!0') + 'Z'] = function (_0x3ff865, _0x1e9500) {
    return _0x3ff865 < _0x1e9500;
}
;
_0x116f6d[_0x2ec8('0x5a', 'z*df') + 'u'] = function (_0x16ebd5, _0x50b407) {
    return _0x16ebd5 + _0x50b407;
}
;
_0x116f6d[_0x2ec8('0xa2', 'C&Tu') + 'U'] = function (_0x3c1abb, _0x360b12) {
    return _0x3c1abb ^ _0x360b12;
}
;
_0x116f6d[_0x2ec8('0xc1', 'Yi04') + 'r'] = function (_0x1762d4, _0x559a18) {
    return _0x1762d4 - _0x559a18;
}
;
_0x116f6d[_0x2ec8('0x6a', 'xr74') + 'b'] = function (_0x73b748, _0x1faaf0, _0xbf6322) {
    return _0x73b748(_0x1faaf0, _0xbf6322);
}
;
_0x116f6d[_0x2ec8('0xa4', 'qQKG') + 'J'] = function (_0x3a5f4d, _0x17b6bc, _0x5062a9, _0x3ef2b8, _0x830e89) {
    return _0x3a5f4d(_0x17b6bc, _0x5062a9, _0x3ef2b8, _0x830e89);
}
;
_0x116f6d[_0x2ec8('0x50', 'R8a@') + 'w'] = function (_0x4986a8, _0x4b24c9, _0x26a3b0) {
    return _0x4986a8(_0x4b24c9, _0x26a3b0);
}
;
_0x116f6d[_0x2ec8('0x80', 'w&%d') + 'd'] = function (_0x5ef6a8, _0x5bf6ed) {
    return _0x5ef6a8(_0x5bf6ed);
}
;
_0x116f6d[_0x2ec8('0xc7', '[J*f') + 'B'] = function (_0x46a4ee, _0x14baed, _0x3d7924) {
    return _0x46a4ee(_0x14baed, _0x3d7924);
}
;
_0x116f6d[_0x2ec8('0x5f', 'fzLR') + 'M'] = function (_0x590fa2, _0x5b76d4) {
    return _0x590fa2 != _0x5b76d4;
}
;
_0x116f6d[_0x2ec8('0x7b', 'z%X@') + 'G'] = _0x2ec8('0x6f', 'Yi04') + 'i';
_0x116f6d[_0x2ec8('0xb5', 'I&MM') + 'r'] = function (_0x10a480, _0x143145) {
    return _0x10a480 + _0x143145;
}
;
_0x116f6d[_0x2ec8('0x78', 'xIIr') + 'M'] = function (_0x586e6b, _0x1ac2e3) {
    return _0x586e6b + _0x1ac2e3;
}
;
_0x116f6d[_0x2ec8('0x3f', 'qQKG') + 'A'] = _0x2ec8('0xa0', 'SqDq') + _0x2ec8('0xb2', 'xr74') + '=';
_0x116f6d[_0x2ec8('0x3c', '0M8k') + 'H'] = function (_0x36f42f, _0xb83a0) {
    return _0x36f42f + _0xb83a0;
}
;
_0x116f6d[_0x2ec8('0xd', 'BR!0') + 'Z'] = function (_0x4bd4bf, _0x17c2ce, _0x185cde) {
    return _0x4bd4bf(_0x17c2ce, _0x185cde);
}
;
_0x116f6d[_0x2ec8('0x3', 'U^zS') + 'B'] = function (_0x5b67f0, _0x4e972d) {
    return _0x5b67f0(_0x4e972d);
}
;
var _0x280d98 = _0x116f6d;
var _0x325366 = {
    "bts": ["1656667282.429|0|eXY", "vbtmIFq4J8kHYDrZlu2upY%3D"],
    "chars": "tpvPbmWqWJHbuUhsUmFmkC",
    "ct": "d0610b67664ac0e0c1d34c03571718de7f1925fe",
    "ha": "sha1",
    "tn": "__jsl_clearance",
    "vt": "3600",
    "wt": "1500"
}
var _0xac5479 = new Date();

function _0xe11243(_0x20769d, _0x4b65c9) {
    var _0x1f82a9 = _0x325366[_0x2ec8('0x53', 'xIIr') + 's'][_0x2ec8('0x9f', 'SqDq') + 'th'];
    for (var _0x2a5338 = 0x0; _0x2a5338 < _0x1f82a9; _0x2a5338++) {
        for (var _0x4dda4b = 0x0; _0x4dda4b < _0x1f82a9; _0x4dda4b++) {
            var _0x3fc00e = _0x280d98[_0x2ec8('0xae', 'v&ej') + 'r'](_0x280d98[_0x2ec8('0x63', 'F2lQ') + 'M'](_0x4b65c9[0x0], _0x325366[_0x2ec8('0x48', 'w&%d') + 's'][_0x2ec8('0x75', 'gg32') + 'tr'](_0x2a5338, 0x1)) + _0x325366[_0x2ec8('0xa5', 'I&MM') + 's'][_0x2ec8('0xb1', '*#UM') + 'tr'](_0x4dda4b, 0x1), _0x4b65c9[0x1]);
            if (hash(_0x3fc00e) == _0x20769d) {
                return [_0x3fc00e, new Date() - _0xac5479];
            }
        }
    }
}

var _0x4f17b5 = _0x280d98[_0x2ec8('0x88', 'hteo') + 'B'](_0xe11243, _0x325366['ct'], _0x325366[_0x2ec8('0x2d', 'z%X@')]);

__jsl_clearance = _0x280d98[_0x2ec8('0x11', 'U^zS') + 'M'](_0x280d98[_0x2ec8('0x63', 'F2lQ') + 'M'](_0x280d98[_0x2ec8('0x1e', 'z*df') + 'M'](_0x325366['tn'], '=') + _0x4f17b5[0x0] + _0x280d98[_0x2ec8('0x5', 'xIIr') + 'A'], _0x325366['vt']), _0x2ec8('0x34', 'z%X@') + _0x2ec8('0xbf', 'xIIr') + '\x20/');

console.log(__jsl_clearance)

go我改了名字哈,代码里是 _0x325366 。大家

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: JS ob混淆还原工具是一种可以通过对经过混淆JavaScript代码进行解析和还原的工具。在前端开发中,为了保护代码的安全性和减少代码的可读性,开发者经常会使用混淆工具对代码进行混淆处理,使其变得更加难以理解和阅读。 JS ob混淆还原工具通过逆向工程的方式,分析混淆后的代码的特征和逻辑,将其还原为可读性较高的代码。这种工具通常会借助静态分析、动态执行和模式匹配等技术手段,识别并还原代码中的关键变量和函数,恢复其原有的结构和逻辑。 然而,要完全还原被混淆的代码并非易事。混淆工具会对代码进行各种复杂的变形,包括变量重命名、函数内联、控制流混淆等,使得代码的结构和逻辑被混淆起来。因此,即使使用了JS ob混淆还原工具,也无法保证还原的代码百分之百准确和完整。 此外,使用JS ob混淆还原工具需要具备一定的前端开发知识和经验,对JavaScript语法和代码结构有一定的了解。对于复杂的混淆代码,可能需要结合其他辅助工具和技术来辅助还原。 总的来说,JS ob混淆还原工具是一种有助于解析和还原混淆JavaScript代码的工具,但其效果和可靠性受到混淆的复杂程度和工具的能力的限制。在实际使用中,需要综合考虑各种因素,并结合其他技术手段来还原混淆代码。 ### 回答2: JS ob混淆还原工具是用于还原经过混淆处理的JavaScript代码的工具。在开发过程中,为了保护源代码的安全性和保密性,开发者经常会使用混淆工具对JavaScript代码进行混淆处理。 混淆工具会对JavaScript代码进行一系列的转换和修改,使得代码变得难以理解和分析。这些转换包括重命名变量名、函数名和类名,删除空格和注释,提取字符串并进行加密等等。 然而,有时候需要对混淆后的代码进行还原,以方便理解、分析和调试代码。这时候,就需要使用JS ob混淆还原工具。 JS ob混淆还原工具通常可以通过分析混淆后的代码结构和特征,还原出原始的代码结构和变量名。它可以识别和还原经过转换的代码,恢复出可读性较高的代码。 尽管JS ob混淆还原工具可以在一定程度上帮助开发者还原混淆后的代码,但并不能完全还原出原始的代码,尤其是在代码经过复杂混淆处理的情况下。此外,由于混淆工具使用了一些高级技术进行代码转换和加密,还原工具可能存在一定的局限性。 综上所述,JS ob混淆还原工具是一种帮助开发者还原经过混淆处理的JavaScript代码的工具,但需要注意它不能完全还原出原始的代码,并且其还原效果受到混淆处理的复杂程度和技术选用的影响。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值