猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)

题目:提取全部5页发布日热度的值,计算所有值的加和

地址:https://match.yuanrenxue.cn/match/2

思路分析

本题我们会简单说一下两种不同的方式去处理,一种是不还原混淆代码直接从源代码硬扣生成逻辑,另一种则是还原混淆代码之后直接改写代码来实现。

本题考察的是cookie中的参数的动态生成变化,每一页的cookie值m是不同的,所以本题的目标就是找到m的生成逻辑进行改写。接下来直接进入本题的思路讲解。

首先,进入页面后打开开发者工具然后刷新页面,会遇到第一个反爬——无限debugger的反调试手段,如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第1张图片

解决方式有以下几种:

1.禁用此处断点,在debugger行数单击鼠标右键,选择【never paush here】然后刷新页面。
2.添加条件断点,同样,在行数单击右键,选择【add conditional breakpoint】然后输入false,回车后再刷新页面
3.通过注入js代码的方式来替换掉这段无限debugger的代码,hook代码如下:
Function.prototype.constructor = function (a) {
        if (a == "debugger"){
            return function (){};
        }
        return Function.prototype.constructor_(a);
    }

正常访问到页面后接下来分析包,该站中数据基本都是异步加载, 所以原页面中是没有目标数据的,当然也可以正常按照流程进行分析(只需要一分钟不到的时间也能够看出来)

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第2张图片

找到之后就可以先根据这个包的头信息来初步编写请求代码了。

import requests


url = 'https://match.yuanrenxue.cn/api/match/2?page=1'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
}
cookies = {}
cookies['seesionid'] = '4n06n2jpo9iyk0bx2l6vshosizkrk25n'
response = requests.get(url, headers=headers, cookies=cookies)
print(response.json())	# 输出{'error': '出错啦~嘤嘤嘤'}

此时代码中还没有分析cookie中的m值,所以执行肯定是没有正确结果的。

那么接下来就是去分析m的值如何生成的了。

m值生成逻辑分析(不还原ob混淆,硬扣代码)

首先观察m值的结果,因为在我们知道cookie中的值是以键值对存储,所以该值的键就是m,在搜索的时候如果搜m的话会出现大量的干扰项,先不说搜不搜得到的问题,就算搜到了也很难从大量的干扰项中找到准确的地方,所以直接从其值的结构下手,先来观察这个cookie的值结构。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第3张图片

从这个结构来看的话,其中唯一特殊性的符号就是一个竖线|了,所以直接全局搜索这个符号。但是搜索的结果大家会发现并起不到任何的作用,因为这个符号在js中也是广泛应用到的一个符号。如下图

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第4张图片

那么也就是说这种直接搜索的方式我们肯定是没法用了,所以这里根据网站请求的特征来给出两种方案来找到这个m的生成逻辑。

1.hook出cookie中的m键值对,hook代码如下(包括了上方的无限debug的处理)

var hook = function() {
    'use strict';
    Function.prototype.constructor_ = Function.prototype.constructor;
    Function.prototype.constructor = function (a) {
        if (a == "debugger"){
            return function (){};
        }
        return Function.prototype.constructor_(a);
    }
    var cookieTemp = '';
    Object.defineProperty(document, 'cookie', {
        set: function(val) {
            if (val.indexOf('m=') != -1) {
                debugger;
            }
            console.log('Hook捕获到cookie设置->', val);
            cookieTemp = val;
            return val;
        },
        get: function() {
            return cookieTemp;
        },
    });
}
var script = document.createElement('script');
script.textContent = '(' + hook + ')()';
(document.head || document.documentElement).appendChild(script);
script.parentNode.removeChild(script);

实现效果如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第5张图片

2.利用抓包工具fiddler或Charles等来抓包分析。会发现在获取数据之前会先发送一个请求

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第6张图片

先发送的这个请求获取的内容就是我们通过hook后跟栈的代码。所以两种方式都能够找到cookie的生成逻辑。

捕获到m之后就是去跟栈了。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第7张图片

跟栈过来直接就看到了上图所示的代码文件,出现了document,根据经验,猜测这个混淆的代码想要表达的意思为document.cookie=xxxxxx也就是说这里可能是cookie的生成位置,那具体是不是的话我们来简单还原一下就知道啦。直接将这个表达式等号左边的内容复制下来逐个还原

document[$dbsm_0x1a40('\x30\x78\x61\x33', '\x40\x64\x4b\x26') + $dbsm_0x1a40('\x30\x78\x34\x66\x37', '\x73\x39\x68\x25')]

将中括号中的内容全部复制下来放到console中跑一下就可以直接还原出来,结果如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第8张图片

果然,和猜测的一致,也就是说这个还原后代码就是document['cookie']document.cookie是一样的,从对象中取值(赋值),那就是说该表达式等号右面的内容就是对cookie进行赋值了。所以,接下来就是对该表达式等号右面的内容进行分析了,同样的先将其复制下来观察一下。

_0x5d54fc['\x70\x5a\x6f' + '\x69\x70'](_0x5d54fc['\x4f\x47\x52' + '\x67\x61'](_0x5d54fc['\x4f\x47\x52' + '\x67\x61'](_0x5d54fc[$dbsm_0x1a40('\x30\x78\x32\x33\x39', '\x42\x66\x6d\x6b') + '\x67\x61'](_0x5d54fc[$dbsm_0x1a40('\x30\x78\x32\x35', '\x40\x64\x4b\x26') + '\x67\x61'](_0x5d54fc['\x6f\x6f\x52' + '\x4c\x54']('\x6d', _0x5d54fc['\x67\x56\x4d' + '\x5a\x52'](_0x1b843a)), '\x3d'), _0x5d54fc['\x61\x79\x50' + '\x68\x4c'](_0x1058eb, _0x24ee7f)), '\x7c'), _0x24ee7f), _0x5d54fc[$dbsm_0x1a40('\x30\x78\x63\x64', '\x42\x66\x6d\x6b') + '\x6d\x6a']);

怎么说呢,很长,不还原的话也根本看不懂其是什么意思,但是丝毫不慌,先来看看这段代码执行的结果是什么。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第9张图片

很明显就是我们需要的m的值,那接下来我们就来将这段代码简单的分析一下调用逻辑了。首先在任意代码编写工具中将这段调用逻辑代码手动格式化一下。

在这里插入图片描述

然后我们来将里面的固定值还原一下。

还原过程

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第10张图片

还原结果

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第11张图片

这样代码看起来是不是就清晰很多了。再根据调用逻辑来还原一下代码,首先是最外层的调用,也就是_0x5d54fc['pZoip']这一层调用。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第12张图片

在控制台定位到代码中后不难看出这个函数就是将传入的两个参数进行相加,所以代码去掉最外层并改为+之后如下。

在这里插入图片描述

同上,再去最外层调用分析_0x5d54fc['OGRga'],如下

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第13张图片

一样的,也是将两个传入的参数相加,那么代码进一步优化如下:

在这里插入图片描述

到这里代码明显就要好看多了,但是问题还没有处理完,还有_0x5d54fc['ooRLT']、_0x5d54fc['gVMZR']、_0x5d54fc['ayPhL']、_0x5d54fc['KQwmj']四个钉子户没有解决,我们还需要继续进行还原。依次进行,如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第14张图片

可以看到_0x5d54fc['ooRLT']这个函数依然是将两个参数进行相加,那就进一步将代码改写吧。

在这里插入图片描述

然后是_0x5d54fc['gVMZR']

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第15张图片

不难看出这个代码是将另一个函数作为参数传到该函数中进行调用并返回其调用结果,所以改写后如下:

在这里插入图片描述

再看_0x5d54fc['ayPhL']

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第16张图片

这一段代码传入的是两个参数,但是并不是相加了,而是其中一个参数是一个函数,另一个参数作为这个函数的参数传入进行调用,最后返回结果。则_0x5d54fc['ayPhL'](_0x1058eb, _0x24ee7f)这部分代码还原后为

_0x1058eb(_0x24ee7f)

最后一个钉子户还原如下

在这里插入图片描述

那么该段混淆的代码还原后最终为:

'm'+ _0x1b843a() + '=' + _0x1058eb(_0x24ee7f) + '|' + _0x24ee7f + '; path=/'

根据这段代码的执行结果m=2233900f85f9f4ae31fae29951c9c21a|1691830966000; path=/来看的话,_0x1b843a()这个函数的调用结果是一个空值,所以可以直接省略,同时,我们需要的仅仅为m的值,并不需要cookie的路径,因此最终这段代码可改写为如下:

var cookie_m = _0x1058eb(_0x24ee7f) + '|' + _0x24ee7f

从这里来看的话也就是说我们就只需要抠出_0x1058eb函数的逻辑,并找到参数_0x24ee7f的值那么就大功告成了,_0x24ee7f的值直接在控制台可以看到是一个时间戳,这个就不再描述了。接下来我们将源代码全部复制到文本工具中(因为在浏览器中如果页面刷新的话源代码中的变量名会发生改变,但是代码的执行逻辑是完全一样的,并不会影响后续操作,最好在跟栈到生成处就先将代码拷到本地),方便我们去扣生成逻辑。以上是不还原ob混淆时的思路,接下来我们看还原ob混淆之后的分析。

m值生成逻辑分析(还原ob混淆后)

前面的环节是一样的,通过hook或者抓包工具抓包的方式先找到m值生成逻辑所在的js代码。找到这个js代码文件之后,很明显的可以发现这是一个ob混淆的代码,那么我们就将其还原一下,手写AST进行还原(别多想,ob混淆要还原有很多开源的工具,如果实在无法还原再去手写AST,如果不会的话那么就用第一中方式硬扣,ob混淆可以直接通过该站内的还原工具进行还原。地址:https://tool.yuanrenxue.cn)

还原后部分代码如下图:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第17张图片

代码的可读性明显提高,同时很轻易能够找到cookie的生成位置

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第18张图片

那么接下来就是一样的稍微改写一下然后去扣代码就好了。本文中我们就以还原后的代码来进行处理。

js代码重写(扣代码、补环境)

初步重写的代码如下

_0x24ee7f = 1691830966000

function _0x1058eb(_0x240389, _0x18d740, _0x3a513f) {
    _0x1b843a();

    return _0x18d740 ? _0x3a513f ? _0x9c9dd6(_0x18d740, _0x240389) : y(_0x18d740, _0x240389) : _0x3a513f ? _0x506c56(_0x240389) : _0x1ce0c6(_0x240389);
}

var cookie_m = _0x1058eb(_0x24ee7f) + "|" + _0x24ee7f;

接下来就是缺什么补什么。执行代码结果如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第19张图片

_0x1b843a未定义,那么从代码中去查找其定义的位置完整扣下来

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第20张图片

扣下来放到代码中执行如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第21张图片

同上步骤,扣下来后再执行如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第22张图片

到这里,就遇到了一个反本地调试的手段了,可以发现代码执行已经卡死了,很明显是和刚刚扣下来的_0x690d7c函数有关,那么我们在这个函数中打上断点来调试一下看看是在哪一个步骤出现的问题。在如下图所示位置打上断点并开始debug

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第23张图片

按F8单步调试会发现代码在执行到_0x66ca1e();这个函数执行的时候发生的卡死。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第24张图片

那么我们就定位到这个函数中再打断点,然后再调试就会发现代码是在_0x32da0f函数出现的卡死现象了

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第25张图片

那就分析一下这个函数的代码逻辑吧,其实熟悉js的话一眼就看出来了这段代码是做什么用的,构造函数的调用、正则匹配、最后返回正则匹配的结果,再往下一看在紧挨着的一个自执行函数中判断匹配结果,结合匹配规则与作用对象一看,那可不就是判断一下这个对象的作用范围内的代码是否格式化了嘛,如果格式化了的话就一直递归调用下去,直到程序崩溃。所以分析到这里就很清晰了,我们只需要将该作用对象的代码压缩一下,也就是不要格式化了就可以了。将_0x690d7c_0x1b843a两个函数的代码压缩成一行后执行如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第26张图片

成功解决,来到下一步,再去扣_0x3a892d,再执行如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第27张图片

再扣再执行如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第28张图片

中间重复步骤省略,到缺少navigator时在文件开头补上navigator={}即可。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第29张图片

执行结束,输出一下。但是会发现报错如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第30张图片

这时候不要惊慌,好好思考一下,明明没有输出前都能够正常执行,为什么添加输出之后反而报错了呢?那很明显就是console被代码中重写了导致不能再使用console.log()进行输出了,其实到这里了对我们来说输出不输出已经不重要了,如果硬要在js中输出验证的话那我们在文件头部将console对象赋值到一个变量即可myconsole=console;然后通过重新赋值的这个myconsole进行输出即可。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第31张图片

成功,接下来就是写一个入口函数,并且将时间戳改为即时生成即可。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第32张图片

成功!!!!但我们再来看下另一种方法,大家可能会遇到的(主要是反调试的手段多了几个…)

从还原后的代码中不难发现cookie的生成逻辑是在一个大自执行函数中。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第33张图片

也就是说这完整的代码直接执行后会在document对象中自动添加cookie属性,那么也就是说我们只需要根据执行情况补一下document等浏览器环境就可以直接从document中获取到cookie值然后简单分割一下就可以了,是否能够成功呢?接下来我们一步一步来看一下。直接执行代码如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第34张图片

按规矩来,缺什么就补什么。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第35张图片

补完navigator后再执行就出现了上图所示的异常了。而出现这个异常的原因则是因为我们本地的nodejs环境与浏览器环境中的setInterval不一致所导致的,在浏览器中setInterval传入的第一个参数可以是字符串,但是在nodejs中传入的第一个参数必须是函数。而解决方法就是直接将setInterval置空。当然,这种情况只是因为本题中的源代码结构结构的特性我们可以直接将其置空,如果是其他情况的话我们就不能够直接置空了,而是需要去判断一下其类型是字符串还是函数了,如果是字符串的话就需要去hook一下将其转变为函数的调用了。这里置空后代码执行如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第36张图片

一直补完documentlocation后执行如下:

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第37张图片

location.reload不是一个函数,那我们就将其改写为一个函数,它在浏览器中的作用是重载页面,相当于会刷新页面,所以在本地就直接置空即可。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第38张图片

补完,同样的,console不能直接使用,重新赋值后直接输出document.cookie就能够查看生成结果了。

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)_第39张图片

完事,剩下的就是一样的写一个入口函数然后将上方值简单分割一下就可以了。

完整js代码(改写代码+补环境,少反调试)

myconsole = console
navigator = {}
var _0x690d7c=function(){var _0x22923e=true;return function(_0x9b498e,_0x372c99){var _0x4b9251=_0x22923e?function(){if(_0x372c99){var _0x5c3668=_0x372c99["apply"](_0x9b498e,arguments);_0x372c99=null;return _0x5c3668}}:function(){};_0x22923e=false;return _0x4b9251}}();
var _0x3a892d = function () {
    var _0x2303ec = true;
    return function (_0xf72eef, _0xc95e55) {
      var _0x13000b = _0x2303ec ? function () {
        if (_0xc95e55) {
          var _0x3bd976 = _0xc95e55["apply"](_0xf72eef, arguments);

          _0xc95e55 = null;
          return _0x3bd976;
        }
      } : function () {};

      _0x2303ec = false;
      return _0x13000b;
    };
  }();
function _0x1b843a(_0x10945f,_0x180a4f){var _0x66ca1e=_0x690d7c(this,function(){var _0x32da0f=function(){var _0x87eeb4=_0x32da0f["constructor"]("return /\" + this + \"/")()["compile"]("^([^ ]+( +[^ ]+)+)+[^ ]}");return!_0x87eeb4["test"](_0x66ca1e)};return _0x32da0f()});_0x66ca1e();(function(){_0x3a892d(this,function(){var _0x419b41=new RegExp("function *\\( *\\)");var _0x13edb7=new RegExp("\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)","i");var _0x574e1d=$dbsm_0xdd01da("init");if(!_0x419b41["test"](_0x574e1d+"chain")||!_0x13edb7["test"](_0x574e1d+"input")){_0x574e1d("0")}else{$dbsm_0xdd01da()}})()})();_0x48768d();qz=[10,99,111,110,115,111,108,101,32,61,32,110,101,119,32,79,98,106,101,99,116,40,41,10,99,111,110,115,111,108,101,46,108,111,103,32,61,32,102,117,110,99,116,105,111,110,32,40,115,41,32,123,10,32,32,32,32,119,104,105,108,101,32,40,49,41,123,10,32,32,32,32,32,32,32,32,102,111,114,40,105,61,48,59,105,60,49,49,48,48,48,48,48,59,105,43,43,41,123,10,32,32,32,32,32,32,32,32,104,105,115,116,111,114,121,46,112,117,115,104,83,116,97,116,101,40,48,44,48,44,105,41,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,125,10,10,125,10,99,111,110,115,111,108,101,46,116,111,83,116,114,105,110,103,32,61,32,39,91,111,98,106,101,99,116,32,79,98,106,101,99,116,93,39,10,99,111,110,115,111,108,101,46,108,111,103,46,116,111,83,116,114,105,110,103,32,61,32,39,402,32,116,111,83,116,114,105,110,103,40,41,32,123,32,91,110,97,116,105,118,101,32,99,111,100,101,93,32,125,39,10];eval(_0xf93828(qz));try{if(global){console["log"]("人生苦短,何必python?")}else{while(1){console["log"]("人生苦短,何必python?");debugger}}}catch(_0x469691){return navigator["vendorSub"]}}
function _0x1058eb(_0x240389, _0x18d740, _0x3a513f) {
    _0x1b843a();

    return _0x18d740 ? _0x3a513f ? _0x9c9dd6(_0x18d740, _0x240389) : y(_0x18d740, _0x240389) : _0x3a513f ? _0x506c56(_0x240389) : _0x1ce0c6(_0x240389);
}
function $dbsm_0xdd01da(_0x1a0567) {
  function _0x755ddb(_0x151b05) {
    if (typeof _0x151b05 === "string") {
      return function (_0x56a96c) {}["constructor"]("while (true) {}")["apply"]("counter");
    } else {
      if (("" + _0x151b05 / _0x151b05)["length"] !== 1 || _0x151b05 % 20 === 0) {
        (function () {
          return true;
        })["constructor"]("debugger")["call"]("action");
      } else {
        (function () {
          return false;
        })["constructor"]("debugger")["apply"]("stateObject");
      }
    }

    _0x755ddb(++_0x151b05);
  }

  try {
    if (_0x1a0567) {
      return _0x755ddb;
    } else {
      _0x755ddb(0);
    }
  } catch (_0xdaddf6) {}
}
function _0x48768d(_0x23c596, _0x1c41ef) {
    if (_0x1c41ef) {
      return _0x2d1471(_0x23c596);
    }

    return _0x9c9dd6(_0x23c596);
  }
function _0x9c9dd6(_0x12bd03, _0x4254f8) {
    let _0x5754f4 = [99, 111, 110, 115, 111, 108, 101];
    let _0x56dfda = "";

    for (let _0x5b3ab2 = 0; _0x5b3ab2 < _0x5754f4["length"]; _0x5b3ab2++) {
      _0x56dfda += String["fromCharCode"](_0x5754f4[_0x5b3ab2]);
    }

    return _0x56dfda;
  }
function _0xf93828(_0x5596e3, _0x189264) {
    let _0x13c754 = "";

    for (let _0x5bf558 = 0; _0x5bf558 < _0x5596e3["length"]; _0x5bf558++) {
      _0x13c754 += String["fromCharCode"](_0x5596e3[_0x5bf558]);
    }

    return _0x13c754;
  }
function _0x1ce0c6(_0x3f4500) {
    return _0x147dc9(_0x506c56(_0x3f4500));
  }
function _0x147dc9(_0x53375d) {
    var _0x477ba8,
        _0x25c41b,
        _0x9361b0 = "0123456789abcdef",
        _0x54a0b0 = "";

    for (_0x25c41b = 0; _0x25c41b < _0x53375d["length"]; _0x25c41b += 1) _0x477ba8 = _0x53375d["charCodeAt"](_0x25c41b), _0x54a0b0 += _0x9361b0["charAt"](_0x477ba8 >>> 4 & 15) + _0x9361b0["charAt"](15 & _0x477ba8);

    return _0x54a0b0;
  }
function _0x506c56(_0x3ab7f1) {
    return _0x1752f3(_0x476ffd(_0x3ab7f1));
  }
function _0x1752f3(_0x26eae4) {
    return _0x198ea8(_0x5ac40d(_0x230444(_0x26eae4), 8 * _0x26eae4["length"]));
  }
function _0x476ffd(_0x2436f3) {
    return unescape(encodeURIComponent(_0x2436f3));
  }
function _0x198ea8(_0x1f0de4) {
    var _0x12d808,
        _0x5842c5 = "",
        _0x22f5cb = 32 * _0x1f0de4["length"];

    for (_0x12d808 = 0; _0x12d808 < _0x22f5cb; _0x12d808 += 8) _0x5842c5 += String["fromCharCode"](_0x1f0de4[_0x12d808 >> 5] >>> _0x12d808 % 32 & 255);

    return _0x5842c5;
  }
function _0x5ac40d(_0x2d83f0, _0x5bbe52) {
    _0x2d83f0[_0x5bbe52 >> 5] |= 128 << _0x5bbe52 % 32, _0x2d83f0[14 + (_0x5bbe52 + 64 >>> 9 << 4)] = _0x5bbe52;

    if (qz) {
      var _0x58fe32,
          _0x567fd4,
          _0x57b526,
          _0x2db45c,
          _0x5a32b7,
          _0x40d0ec = 1732584193,
          _0x7c3969 = -271733879,
          _0x49ab92 = -1732584194,
          _0x1eeac1 = 271733878;
    } else {
      var _0x58fe32,
          _0x567fd4,
          _0x57b526,
          _0x2db45c,
          _0x5a32b7,
          _0x40d0ec = 0,
          _0x7c3969 = -0,
          _0x49ab92 = -0,
          _0x1eeac1 = 0;
    }

    for (_0x58fe32 = 0; _0x58fe32 < _0x2d83f0["length"]; _0x58fe32 += 16) _0x567fd4 = _0x40d0ec, _0x57b526 = _0x7c3969, _0x2db45c = _0x49ab92, _0x5a32b7 = _0x1eeac1, _0x40d0ec = _0x3299fa(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32], 7, -680876936), _0x1eeac1 = _0x3299fa(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 1], 12, -389564586), _0x49ab92 = _0x3299fa(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 2], 17, 606105819), _0x7c3969 = _0x3299fa(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 3], 22, -1044525330), _0x40d0ec = _0x3299fa(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 4], 7, -176418897), _0x1eeac1 = _0x3299fa(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 5], 12, 1200080426), _0x49ab92 = _0x3299fa(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 6], 17, -1473231341), _0x7c3969 = _0x3299fa(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 7], 22, -45705983), _0x40d0ec = _0x3299fa(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 8], 7, 1770010416), _0x1eeac1 = _0x3299fa(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 9], 12, -1958414417), _0x49ab92 = _0x3299fa(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 10], 17, -42063), _0x7c3969 = _0x3299fa(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 11], 22, -1990404162), _0x40d0ec = _0x3299fa(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 12], 7, 1804603682), _0x1eeac1 = _0x3299fa(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 13], 12, -40341101), _0x49ab92 = _0x3299fa(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 14], 17, -1502882290), _0x7c3969 = _0x3299fa(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 15], 22, 1236535329), _0x40d0ec = _0xb977ae(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 1], 5, -165796510), _0x1eeac1 = _0xb977ae(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 6], 9, -1069501632), _0x49ab92 = _0xb977ae(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 11], 14, 643717713), _0x7c3969 = _0xb977ae(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32], 20, -373897302), _0x40d0ec = _0xb977ae(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 5], 5, -701558691), _0x1eeac1 = _0xb977ae(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 10], 9, 38016083), _0x49ab92 = _0xb977ae(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 15], 14, -660478335), _0x7c3969 = _0xb977ae(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 4], 20, -405537848), _0x40d0ec = _0xb977ae(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 9], 5, 568446438), _0x1eeac1 = _0xb977ae(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 14], 9, -1019803690), _0x49ab92 = _0xb977ae(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 3], 14, -187363961), _0x7c3969 = _0xb977ae(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 8], 20, 1163531501), _0x40d0ec = _0xb977ae(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 13], 5, -1444681467), _0x1eeac1 = _0xb977ae(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 2], 9, -51403784), _0x49ab92 = _0xb977ae(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 7], 14, 1735328473), _0x7c3969 = _0xb977ae(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 12], 20, -1926607734), _0x40d0ec = _0x462038(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 5], 4, -378558), _0x1eeac1 = _0x462038(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 8], 11, -2022574463), _0x49ab92 = _0x462038(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 11], 16, 1839030562), _0x7c3969 = _0x462038(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 14], 23, -35309556), _0x40d0ec = _0x462038(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 1], 4, -1530992060), _0x1eeac1 = _0x462038(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 4], 11, 1272893353), _0x49ab92 = _0x462038(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 7], 16, -155497632), _0x7c3969 = _0x462038(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 10], 23, -1094730640), _0x40d0ec = _0x462038(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 13], 4, 681279174), _0x1eeac1 = _0x462038(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32], 11, -358537222), _0x49ab92 = _0x462038(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 3], 16, -722521979), _0x7c3969 = _0x462038(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 6], 23, 76029189), _0x40d0ec = _0x462038(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 9], 4, -640364487), _0x1eeac1 = _0x462038(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 12], 11, -421815835), _0x49ab92 = _0x462038(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 15], 16, 530742520), _0x7c3969 = _0x462038(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 2], 23, -995338651), _0x40d0ec = _0x2d1471(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32], 6, -198630844), _0x1eeac1 = _0x2d1471(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 7], 10, 1126891415), _0x49ab92 = _0x2d1471(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 14], 15, -1416354905), _0x7c3969 = _0x2d1471(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 5], 21, -57434055), _0x40d0ec = _0x2d1471(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 12], 6, 1700485571), _0x1eeac1 = _0x2d1471(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 3], 10, -1894986606), _0x49ab92 = _0x2d1471(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 10], 15, -1051523), _0x7c3969 = _0x2d1471(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 1], 21, -2054922799), _0x40d0ec = _0x2d1471(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 8], 6, 1873313359), _0x1eeac1 = _0x2d1471(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 15], 10, -30611744), _0x49ab92 = _0x2d1471(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 6], 15, -1560198380), _0x7c3969 = _0x2d1471(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 13], 21, 1309151649), _0x40d0ec = _0x2d1471(_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1, _0x2d83f0[_0x58fe32 + 4], 6, -145523070), _0x1eeac1 = _0x2d1471(_0x1eeac1, _0x40d0ec, _0x7c3969, _0x49ab92, _0x2d83f0[_0x58fe32 + 11], 10, -1120210379), _0x49ab92 = _0x2d1471(_0x49ab92, _0x1eeac1, _0x40d0ec, _0x7c3969, _0x2d83f0[_0x58fe32 + 2], 15, 718787259), _0x7c3969 = _0x2d1471(_0x7c3969, _0x49ab92, _0x1eeac1, _0x40d0ec, _0x2d83f0[_0x58fe32 + 9], 21, -343485441), _0x40d0ec = _0x9f627(_0x40d0ec, _0x567fd4), _0x7c3969 = _0x9f627(_0x7c3969, _0x57b526), _0x49ab92 = _0x9f627(_0x49ab92, _0x2db45c), _0x1eeac1 = _0x9f627(_0x1eeac1, _0x5a32b7);

    return [_0x40d0ec, _0x7c3969, _0x49ab92, _0x1eeac1];
  }
function _0x230444(_0x467919) {
    var _0x4109e1,
        _0x25baf8 = [];

    for (_0x25baf8[(_0x467919["length"] >> 2) - 1] = undefined, _0x4109e1 = 0; _0x4109e1 < _0x25baf8["length"]; _0x4109e1 += 1) _0x25baf8[_0x4109e1] = 0;

    var _0x25bf99 = 8 * _0x467919["length"];

    for (_0x4109e1 = 0; _0x4109e1 < _0x25bf99; _0x4109e1 += 8) _0x25baf8[_0x4109e1 >> 5] |= (255 & _0x467919["charCodeAt"](_0x4109e1 / 8)) << _0x4109e1 % 32;

    return _0x25baf8;
  }
function _0x3299fa(_0x495160, _0x16fb11, _0x3ae38b, _0x314cde, _0x2290c7, _0x5990e9, _0x45d97e) {
    return _0x4f4f18(_0x16fb11 & _0x3ae38b | ~_0x16fb11 & _0x314cde, _0x495160, _0x16fb11, _0x2290c7, _0x5990e9, _0x45d97e);
  }
function _0x4f4f18(_0x14de41, _0x2531b3, _0x222ae7, _0x16a21f, _0x107917, _0x44640f) {
    return _0x9f627(_0x2f1a67(_0x9f627(_0x9f627(_0x2531b3, _0x14de41), _0x9f627(_0x16a21f, _0x44640f)), _0x107917), _0x222ae7);
  }
function _0x9f627(_0x29d1a6, _0x1598ab) {
    var _0x1c6307 = (65535 & _0x29d1a6) + (65535 & _0x1598ab);

    return (_0x29d1a6 >> 16) + (_0x1598ab >> 16) + (_0x1c6307 >> 16) << 16 | 65535 & _0x1c6307;
  }
function _0x2f1a67(_0x33ad15, _0x2a3c08) {
    return _0x33ad15 << _0x2a3c08 | _0x33ad15 >>> 32 - _0x2a3c08;
  }
function _0xb977ae(_0x5eeb9b, _0x6532a5, _0x35af99, _0x5665d7, _0x262160, _0x3ba469, _0x431677) {
    return _0x4f4f18(_0x6532a5 & _0x5665d7 | _0x35af99 & ~_0x5665d7, _0x5eeb9b, _0x6532a5, _0x262160, _0x3ba469, _0x431677);
  }
function _0x462038(_0x1f0ecf, _0x5a10d8, _0x49d00f, _0x390eea, _0x98845b, _0x53a715, _0x5edb4e) {
    return _0x4f4f18(_0x5a10d8 ^ _0x49d00f ^ _0x390eea, _0x1f0ecf, _0x5a10d8, _0x98845b, _0x53a715, _0x5edb4e);
  }
function _0x2d1471(_0x1fe612, _0x2a5527, _0x29a0ed, _0x4b1d35, _0x3ae4b8, _0x2f8b46, _0x39bee8) {
    return _0x4f4f18(_0x29a0ed ^ (_0x2a5527 | ~_0x4b1d35), _0x1fe612, _0x2a5527, _0x3ae4b8, _0x2f8b46, _0x39bee8);
  }
_0x24ee7f = Date.parse(new Date());
function run() {
    var cookie_m = _0x1058eb(_0x24ee7f) + "|" + _0x24ee7f;
    return cookie_m
}

完整js代码(不改写代码直接补环境,多反调试)

setInterval = function (a,b){};
var navigator = {};
document = {};
location = {reload:function(){}
}
myconsole = console;
setInterval(function () {
    $dbsm_0x50b43e()
}, 4000);
(function $dbsm_0x1fb679(_0x378ff4){var _0x4b3bde=function(){var _0x5b063c=true;return function(_0x559350,_0x25bbf3){var _0x28da59=_0x5b063c?function(){if(_0x25bbf3){var _0x2f350e=_0x25bbf3["apply"](_0x559350,arguments);_0x25bbf3=null;return _0x2f350e}}:function(){};_0x5b063c=false;return _0x28da59}}();var _0x4fbc28=function(){var _0xa4dada=true;return function(_0x3321b6,_0x34d4cb){var _0x581f1a=_0xa4dada?function(){if(_0x34d4cb){var _0x589db5=_0x34d4cb["apply"](_0x3321b6,arguments);_0x34d4cb=null;return _0x589db5}}:function(){};_0xa4dada=false;return _0x581f1a}}();function _0x2e0676(_0x448810,_0x4ab4cc){var _0x17ade1=(65535&_0x448810)+(65535&_0x4ab4cc);return(_0x448810>>16)+(_0x4ab4cc>>16)+(_0x17ade1>>16)<<16|65535&_0x17ade1}function _0x152ba8(_0x16704a,_0x225663){return _0x16704a<<_0x225663|_0x16704a>>>32-_0x225663}function _0x44a0ca(_0x546ad7,_0x74c8c3,_0x22cff6,_0x195866,_0x1d4f1e,_0x25eff9){return _0x2e0676(_0x152ba8(_0x2e0676(_0x2e0676(_0x74c8c3,_0x546ad7),_0x2e0676(_0x195866,_0x25eff9)),_0x1d4f1e),_0x22cff6)}function _0x253f11(_0x34a8d3,_0x24aee8,_0x6e182,_0x142b67,_0x78f66a,_0x4119cb,_0x55d87d){return _0x44a0ca(_0x24aee8&_0x6e182|~_0x24aee8&_0x142b67,_0x34a8d3,_0x24aee8,_0x78f66a,_0x4119cb,_0x55d87d)}function _0x24ffdd(_0x44dbbf,_0x464366,_0xf4107a,_0x5ee2af,_0x543ba2,_0x3faae2,_0x213c7b){return _0x44a0ca(_0x464366&_0x5ee2af|_0xf4107a&~_0x5ee2af,_0x44dbbf,_0x464366,_0x543ba2,_0x3faae2,_0x213c7b)}function _0x17d074(_0x441a5f,_0x24c6f0){let _0x54360e=[99,111,110,115,111,108,101];let _0x205198="";for(let _0x59425e=0;_0x59425e<_0x54360e["length"];_0x59425e++){_0x205198+=String["fromCharCode"](_0x54360e[_0x59425e])}return _0x205198}function _0x44fc18(_0x4cd28e,_0x470d9b,_0x3aba44,_0x5863f5,_0x2c7528,_0x2eb7ff,_0x40d7d2){return _0x44a0ca(_0x470d9b^_0x3aba44^_0x5863f5,_0x4cd28e,_0x470d9b,_0x2c7528,_0x2eb7ff,_0x40d7d2)}function _0x8db7e2(_0x3a34c6,_0x5d1bc0,_0x10ac1c,_0x2142b7,_0x9c85bf,_0x464e79,_0x3cc822){return _0x44a0ca(_0x10ac1c^(_0x5d1bc0|~_0x2142b7),_0x3a34c6,_0x5d1bc0,_0x9c85bf,_0x464e79,_0x3cc822)}function _0x1cf754(_0x286572,_0x1598e4){if(_0x1598e4){return _0x8db7e2(_0x286572)}return _0x17d074(_0x286572)}function _0x2d2b8f(_0x3c6f66,_0x205d00){let _0x17530d="";for(let _0x95632f=0;_0x95632f<_0x3c6f66["length"];_0x95632f++){_0x17530d+=String["fromCharCode"](_0x3c6f66[_0x95632f])}return _0x17530d}function _0x35bb8c(_0x4d85b7,_0x35eeed){var _0xc5f05a=_0x4b3bde(this,function(){var _0x37fbff=function(){var _0x908393=_0x37fbff["constructor"]("return /\" + this + \"/")()["compile"]("^([^ ]+( +[^ ]+)+)+[^ ]}");return!_0x908393["test"](_0xc5f05a)};return _0x37fbff()});_0xc5f05a();(function(){_0x4fbc28(this,function(){var _0x5c5a97=new RegExp("function *\\( *\\)");var _0x3f014d=new RegExp("\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)","i");var _0x4ab7c1=$dbsm_0x50b43e("init");if(!_0x5c5a97["test"](_0x4ab7c1+"chain")||!_0x3f014d["test"](_0x4ab7c1+"input")){_0x4ab7c1("0")}else{$dbsm_0x50b43e()}})()})();_0x1cf754();qz=[10,99,111,110,115,111,108,101,32,61,32,110,101,119,32,79,98,106,101,99,116,40,41,10,99,111,110,115,111,108,101,46,108,111,103,32,61,32,102,117,110,99,116,105,111,110,32,40,115,41,32,123,10,32,32,32,32,119,104,105,108,101,32,40,49,41,123,10,32,32,32,32,32,32,32,32,102,111,114,40,105,61,48,59,105,60,49,49,48,48,48,48,48,59,105,43,43,41,123,10,32,32,32,32,32,32,32,32,104,105,115,116,111,114,121,46,112,117,115,104,83,116,97,116,101,40,48,44,48,44,105,41,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,125,10,10,125,10,99,111,110,115,111,108,101,46,116,111,83,116,114,105,110,103,32,61,32,39,91,111,98,106,101,99,116,32,79,98,106,101,99,116,93,39,10,99,111,110,115,111,108,101,46,108,111,103,46,116,111,83,116,114,105,110,103,32,61,32,39,402,32,116,111,83,116,114,105,110,103,40,41,32,123,32,91,110,97,116,105,118,101,32,99,111,100,101,93,32,125,39,10];eval(_0x2d2b8f(qz));try{if(global){console["log"]("人生苦短,何必python?")}else{while(1){console["log"]("人生苦短,何必python?");debugger}}}catch(_0x48e38d){return navigator["vendorSub"]}}setInterval(_0x35bb8c(),500);function _0x16d7ad(_0x40e239,_0x1c3433){_0x40e239[_0x1c3433>>5]|=128<<_0x1c3433%32,_0x40e239[14+(_0x1c3433+64>>>9<<4)]=_0x1c3433;if(qz){var _0x14907d,_0x2df472,_0x72a2f4,_0x3e6ca3,_0x39565b,_0x511445=1732584193,_0xe92515=-271733879,_0x27e35a=-1732584194,_0xeb9714=271733878}else{var _0x14907d,_0x2df472,_0x72a2f4,_0x3e6ca3,_0x39565b,_0x511445=0,_0xe92515=-0,_0x27e35a=-0,_0xeb9714=0}for(_0x14907d=0;_0x14907d<_0x40e239["length"];_0x14907d+=16)_0x2df472=_0x511445,_0x72a2f4=_0xe92515,_0x3e6ca3=_0x27e35a,_0x39565b=_0xeb9714,_0x511445=_0x253f11(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d],7,-680876936),_0xeb9714=_0x253f11(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+1],12,-389564586),_0x27e35a=_0x253f11(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+2],17,606105819),_0xe92515=_0x253f11(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+3],22,-1044525330),_0x511445=_0x253f11(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+4],7,-176418897),_0xeb9714=_0x253f11(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+5],12,1200080426),_0x27e35a=_0x253f11(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+6],17,-1473231341),_0xe92515=_0x253f11(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+7],22,-45705983),_0x511445=_0x253f11(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+8],7,1770010416),_0xeb9714=_0x253f11(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+9],12,-1958414417),_0x27e35a=_0x253f11(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+10],17,-42063),_0xe92515=_0x253f11(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+11],22,-1990404162),_0x511445=_0x253f11(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+12],7,1804603682),_0xeb9714=_0x253f11(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+13],12,-40341101),_0x27e35a=_0x253f11(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+14],17,-1502882290),_0xe92515=_0x253f11(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+15],22,1236535329),_0x511445=_0x24ffdd(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+1],5,-165796510),_0xeb9714=_0x24ffdd(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+6],9,-1069501632),_0x27e35a=_0x24ffdd(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+11],14,643717713),_0xe92515=_0x24ffdd(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d],20,-373897302),_0x511445=_0x24ffdd(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+5],5,-701558691),_0xeb9714=_0x24ffdd(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+10],9,38016083),_0x27e35a=_0x24ffdd(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+15],14,-660478335),_0xe92515=_0x24ffdd(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+4],20,-405537848),_0x511445=_0x24ffdd(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+9],5,568446438),_0xeb9714=_0x24ffdd(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+14],9,-1019803690),_0x27e35a=_0x24ffdd(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+3],14,-187363961),_0xe92515=_0x24ffdd(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+8],20,1163531501),_0x511445=_0x24ffdd(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+13],5,-1444681467),_0xeb9714=_0x24ffdd(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+2],9,-51403784),_0x27e35a=_0x24ffdd(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+7],14,1735328473),_0xe92515=_0x24ffdd(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+12],20,-1926607734),_0x511445=_0x44fc18(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+5],4,-378558),_0xeb9714=_0x44fc18(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+8],11,-2022574463),_0x27e35a=_0x44fc18(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+11],16,1839030562),_0xe92515=_0x44fc18(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+14],23,-35309556),_0x511445=_0x44fc18(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+1],4,-1530992060),_0xeb9714=_0x44fc18(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+4],11,1272893353),_0x27e35a=_0x44fc18(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+7],16,-155497632),_0xe92515=_0x44fc18(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+10],23,-1094730640),_0x511445=_0x44fc18(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+13],4,681279174),_0xeb9714=_0x44fc18(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d],11,-358537222),_0x27e35a=_0x44fc18(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+3],16,-722521979),_0xe92515=_0x44fc18(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+6],23,76029189),_0x511445=_0x44fc18(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+9],4,-640364487),_0xeb9714=_0x44fc18(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+12],11,-421815835),_0x27e35a=_0x44fc18(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+15],16,530742520),_0xe92515=_0x44fc18(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+2],23,-995338651),_0x511445=_0x8db7e2(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d],6,-198630844),_0xeb9714=_0x8db7e2(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+7],10,1126891415),_0x27e35a=_0x8db7e2(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+14],15,-1416354905),_0xe92515=_0x8db7e2(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+5],21,-57434055),_0x511445=_0x8db7e2(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+12],6,1700485571),_0xeb9714=_0x8db7e2(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+3],10,-1894986606),_0x27e35a=_0x8db7e2(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+10],15,-1051523),_0xe92515=_0x8db7e2(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+1],21,-2054922799),_0x511445=_0x8db7e2(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+8],6,1873313359),_0xeb9714=_0x8db7e2(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+15],10,-30611744),_0x27e35a=_0x8db7e2(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+6],15,-1560198380),_0xe92515=_0x8db7e2(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+13],21,1309151649),_0x511445=_0x8db7e2(_0x511445,_0xe92515,_0x27e35a,_0xeb9714,_0x40e239[_0x14907d+4],6,-145523070),_0xeb9714=_0x8db7e2(_0xeb9714,_0x511445,_0xe92515,_0x27e35a,_0x40e239[_0x14907d+11],10,-1120210379),_0x27e35a=_0x8db7e2(_0x27e35a,_0xeb9714,_0x511445,_0xe92515,_0x40e239[_0x14907d+2],15,718787259),_0xe92515=_0x8db7e2(_0xe92515,_0x27e35a,_0xeb9714,_0x511445,_0x40e239[_0x14907d+9],21,-343485441),_0x511445=_0x2e0676(_0x511445,_0x2df472),_0xe92515=_0x2e0676(_0xe92515,_0x72a2f4),_0x27e35a=_0x2e0676(_0x27e35a,_0x3e6ca3),_0xeb9714=_0x2e0676(_0xeb9714,_0x39565b);return[_0x511445,_0xe92515,_0x27e35a,_0xeb9714]}function _0x30234e(_0x4ec775){var _0x269953,_0xae95ca="",_0x4bb61b=32*_0x4ec775["length"];for(_0x269953=0;_0x269953<_0x4bb61b;_0x269953+=8)_0xae95ca+=String["fromCharCode"](_0x4ec775[_0x269953>>5]>>>_0x269953%32&255);return _0xae95ca}function _0x3fcc1d(_0x2b4e26){var _0x24b736,_0x60b0f2=[];for(_0x60b0f2[(_0x2b4e26["length"]>>2)-1]=undefined,_0x24b736=0;_0x24b736<_0x60b0f2["length"];_0x24b736+=1)_0x60b0f2[_0x24b736]=0;var _0x23e262=8*_0x2b4e26["length"];for(_0x24b736=0;_0x24b736<_0x23e262;_0x24b736+=8)_0x60b0f2[_0x24b736>>5]|=(255&_0x2b4e26["charCodeAt"](_0x24b736/8))<<_0x24b736%32;return _0x60b0f2}function _0x45d23a(_0x5a8c80){return _0x30234e(_0x16d7ad(_0x3fcc1d(_0x5a8c80),8*_0x5a8c80["length"]))}function _0x3a482f(_0x47d3d6){var _0x499290,_0x486bf3,_0x32737f="0123456789abcdef",_0x123614="";for(_0x486bf3=0;_0x486bf3<_0x47d3d6["length"];_0x486bf3+=1)_0x499290=_0x47d3d6["charCodeAt"](_0x486bf3),_0x123614+=_0x32737f["charAt"](_0x499290>>>4&15)+_0x32737f["charAt"](15&_0x499290);return _0x123614}function _0x2907eb(_0x484576){return unescape(encodeURIComponent(_0x484576))}function _0x5d202b(_0x407046){return _0x45d23a(_0x2907eb(_0x407046))}function _0x44e539(_0x242dcf){return _0x3a482f(_0x5d202b(_0x242dcf))}function _0x1e12cd(_0x5176a4,_0x1432bd,_0x144da5){_0x35bb8c();return _0x1432bd?_0x144da5?_0x17d074(_0x1432bd,_0x5176a4):y(_0x1432bd,_0x5176a4):_0x144da5?_0x5d202b(_0x5176a4):_0x44e539(_0x5176a4)}function _0x45f87a(_0x5a8496,_0x208c8d){document["cookie"]="m"+_0x35bb8c()+"="+_0x1e12cd(_0x5a8496)+"|"+_0x5a8496+"; path=/";location["reload"]()}function _0x58c855(_0x3f3157,_0x56c204){return Date["parse"](new Date())}_0x45f87a(_0x58c855())})();

function $dbsm_0x50b43e(_0x4b4516) {
    function _0x5b390d(_0x235931) {
        if (typeof _0x235931 === "string") {
            return function (_0x216f4b) {
            }["constructor"]("while (true) {}")["apply"]("counter")
        } else {
            if (("" + _0x235931 / _0x235931)["length"] !== 1 || _0x235931 % 20 === 0) {
                (function () {
                    return true
                })["constructor"]("debugger")["call"]("action")
            } else {
                (function () {return false})["constructor"]("debugger")["apply"]("stateObject")
            }
        }
        _0x5b390d(++_0x235931)
    }

    try {
        if (_0x4b4516) {
            return _0x5b390d
        } else {
            _0x5b390d(0)
        }
    } catch (_0x14daf3) {
    }
}

function run() {
    var cookie = document.cookie;
    var result = cookie.split(';')[0].split('=')[1]
    return result
}

完整python代码

import requests
import execjs


url = 'https://match.yuanrenxue.cn/api/match/2?page=%s'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
}
cookies = {}
cookies['seesionid'] = '改为自己的sessionid'
js_code = open('xxx.js', 'r', encoding='utf-8').read()
js_compile = execjs.compile(js_code)
result = 0
for i in range(1, 6):
    cookie_m = js_compile.call('run')
    cookies['m'] = cookie_m
    response = requests.get(url%i, headers=headers, cookies=cookies)
    json_data = response.json()
    for dic in json_data.get('data'):
        result += dic.get('value')
print(result)	# 最终结果为:248974

完结撒花!!!!

你可能感兴趣的:(猿人学竞赛题,javascript,开发语言,python,网络爬虫)