【js逆向入门 】图灵练习平台第八题

题八:迷踪步

JavaScript经过混淆处理,给对抗增加难度,适合在学习JavaScript混淆的人群

开局还是熟悉的无限debugger,直接不在此处停留

 还是复制curl,进行爬虫代码获取发现是cookie中的's': '51b351b351b351b370b0d0d0d03051507010903050',,

还有headers中的'm': 'dedededededea0a6a3a3a3a2a79fa0a1a5a29fa1',

't': 'MTc0NDQzODAxMjYzMA==',

直接hook cookie中的 s

hook cookie代码

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

然后就是跟栈网上找

发现这里的document就是设置cookie的位置,再往下看,就会发现

const _0x1575b7 = sms;
    var _0x1167c7 = new Date()[Wms]();
    return u = '\x2e' + location[Tms][bms]('\x2e')[yms](-0x2)[rms]('\x2e'),
    document[Yms] = _0x56df28['\x47\x51\x5a\x65\x44'](_0x56df28['\x49\x6c\x43\x47\x79'](_0x56df28['\x47\x51\x5a\x65\x44'](xms, _0x56df28['\x56\x51\x55\x70\x5a'](OOOoO, Sms + _0x1167c7)), Ras), u),
    _0x416a83[Gas] = _0x416a83[Gas] || {},
    _0x416a83[Gas][mas] = kas,
    _0x416a83[Gas]['\x6d'] = _0x56df28['\x4b\x54\x52\x5a\x6c'](OOOoOo, _0x56df28[_0xe8dc6(0x2a4)](_0x56df28['\x47\x7a\x66\x41\x58'](_0x1575b7, _0x1167c7), _0x416a83[Has][gas]), _0x1575b7),
    _0x416a83[Gas]['\x74'] = _0x56df28['\x56\x51\x55\x70\x5a'](btoa, _0x1167c7),
    _0x416a83[Has] = x1[Qms](_0x416a83[Has]),
    _0x416a83;
}),

下面的是headers中的m还有t的生成位置,解一下混淆

(function () {
  let _0x2d8529 = ["eNpVks1uEzEQx18lWnFoBVU4t+qhCgmUr5YmiK9WaLKe7DrdtV17liZFSBy5Qc8ICXFH9AV4G0Jfg5lxBGL34t98ev7jt8XLNhXbReOr4lZxBHLe6QWgere/w5apelNoLDHVSgFiQqaghDH6yGQ0t0WqvWGM6px76xjm6utiw+dFrrjLx0bNizqOLDYmseVCnS0EPu/pedpVFUp90uChdOvNkMrauqoXop822PYMEtgmbXPcQNNm0bcMbzTp3FI9iGjQkYVG+uznodFVVDM+Uiy9K0HGPFA0MuOTfFuK3M3OlmwZasnDg/GEYazuhc8/G+6qt0YwGKXR07ViZkwQpfYzNVRIE9tKgwea0DdA0Gd8sb6JP7Xifa1IfqwXYANkzReETlQuFWEOCwZUOC42NzaZbvzVYVBDHHgdx6tx1LmSrHcbEKuuZVXSq9snN48LDjjLBY05whS8S7jvCGOJgXTJSd1eP8YK8nSV1O7U9/vD5fXnH9df3v/6+XV1+W119XH1/RN7TzUUAr8kFpmb9+fJy9tYZoXZLEVaDRt47upoa7IMYjzPGkGw/fXCt/LCRbE7Ob8rS0yi+CgruJ55TzS//2+osw4T/T/T4yxUo6s/zODjEEp5GRPl2idyoPu6p3eRdTE8z9vtkoQ+hPxUgLpUvPsD8Q4VhA=="];
  let _0x56aef3;
  let _0x462a23 = String.fromCharCode;
  var _0x24a628 = typeof window === "object" && window || typeof self === "object" && self || exports;
  (function (_0x4ff0b3) {
    var _0x5f1ae7 = function (_0x22f68e) {
      var _0x5748fb = {};
      var _0x3459bb = 0x0;
      for (var _0x51f078 = _0x22f68e.length; _0x3459bb < _0x51f078; _0x3459bb++) {
        _0x5748fb[_0x22f68e.charAt(_0x3459bb)] = _0x3459bb;
      }
      return _0x5748fb;
    }("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");
    var _0x52a85e = function (_0x5b370) {
      var _0x532cdb;
      var _0x365caf;
      var _0x11d6c6;
      var _0x5ae53d = _0x5b370.length;
      _0x532cdb = _0x5ae53d % 0x4;
      _0x365caf = (_0x5ae53d > 0x0 ? _0x5f1ae7[_0x5b370.charAt(0x0)] << 0x12 : 0x0) | (_0x5ae53d > 0x1 ? _0x5f1ae7[_0x5b370.charAt(0x1)] << 0xc : 0x0) | (_0x5ae53d > 0x2 ? _0x5f1ae7[_0x5b370.charAt(0x2)] << 0x6 : 0x0) | (_0x5ae53d > 0x3 ? _0x5f1ae7[_0x5b370.charAt(0x3)] : 0x0);
      _0x11d6c6 = [_0x462a23(_0x365caf >>> 0x10), _0x462a23(_0x365caf >>> 0x8 & 0xff), _0x462a23(_0x365caf & 0xff)];
      _0x11d6c6.length -= [0x0, 0x0, 0x2, 0x1][_0x532cdb];
      return _0x11d6c6.join('');
    };
    _0x4ff0b3.atob = function (_0x2fd800) {
      return String(_0x2fd800).replace(/[^A-Za-z0-9\+\/]/g, '').replace(/\S{1,4}/g, _0x52a85e);
    };
  })(_0x24a628);
  (function (_0x56dbed) {
    var _0xe2c14f;
    var _0x3e12a5;
    var _0x521af4;
    var _0x3b9cad;
    var _0x2e9cd9;
    var _0x22cf85;
    var _0x33b47d;
    function _0x534fe9(_0x14287a) {
      throw _0x14287a;
    }
    function _0x1dbc99(_0x62c343, _0x1456f7) {
      var _0x1e0e90;
      var _0x493110;
      _0x1e0e90 = undefined;
      this.input = _0x62c343;
      this.c = 0x0;
      if (_0x1456f7 || !(_0x1456f7 = {})) {
        if (_0x1456f7.index) {
          this.c = _0x1456f7.index;
        }
        if (_0x1456f7.verify) {
          this.N = _0x1456f7.verify;
        }
      }
      _0x493110 = _0x62c343[this.c++];
      _0x1e0e90 = _0x62c343[this.c++];
      switch (_0x493110 & 0xf) {
        case 0x8:
          this.method = 0x8;
      }
      if (0x0 !== ((_0x493110 << 0x8) + _0x1e0e90) % 0x1f) {
        _0x534fe9(Error("err:" + ((_0x493110 << 0x8) + _0x1e0e90) % 0x1f));
      }
      if (_0x1e0e90 & 0x20) {
        _0x534fe9(Error("not"));
      }
      this.B = new _0x98c448(_0x62c343, {
        "index": this.c,
        "bufferSize": _0x1456f7.bufferSize,
        "bufferType": _0x1456f7.bufferType,
        "resize": _0x1456f7.resize
      });
    }
    _0x1dbc99.prototype.p = function () {
      var _0x4bf695;
      var _0x4101e7;
      var _0xa8b828 = this.input;
      _0x4bf695 = undefined;
      _0x4101e7 = undefined;
      _0x4bf695 = this.B.p();
      this.c = this.B.c;
      if (this.N) {
        _0x4101e7 = (_0xa8b828[this.c++] << 0x18 | _0xa8b828[this.c++] << 0x10 | _0xa8b828[this.c++] << 0x8 | _0xa8b828[this.c++]) >>> 0x0;
        if (_0x4101e7 !== jb(_0x4bf695)) {
          _0x534fe9(Error("i32c"));
        }
      }
      return _0x4bf695;
    };
    function _0x98c448(_0x137beb, _0x54486c) {
      this.l = [];
      this.m = 0x8000;
      this.e = this.g = this.c = this.q = 0x0;
      this.input = _0x2537f9 ? new Uint8Array(_0x137beb) : _0x137beb;
      this.s = false;
      this.n = 0x1;
      this.C = false;
      if (_0x54486c || !(_0x54486c = {})) {
        if (_0x54486c.index) {
          this.c = _0x54486c.index;
        }
        if (_0x54486c.bufferSize) {
          this.m = _0x54486c.bufferSize;
        }
        if (_0x54486c.bufferType) {
          this.n = _0x54486c.bufferType;
        }
        if (_0x54486c.resize) {
          this.C = _0x54486c.resize;
        }
      }
      switch (this.n) {
        case 0x0:
          this.b = 0x8000;
          this.a = new (_0x2537f9 ? Uint8Array : Array)(0x8000 + this.m + 0x102);
          break;
        case 0x1:
          this.b = 0x0;
          this.a = new (_0x2537f9 ? Uint8Array : Array)(this.m);
          this.f = this.K;
          this.t = this.I;
          this.o = this.J;
          break;
        default:
          _0x534fe9(Error("imd"));
      }
    }
    _0x98c448.prototype.K = function (_0x4e3727) {
      var _0x145c22;
      var _0x2ca30c;
      var _0x1eeae7;
      var _0x5aa43c;
      var _0x121ec3;
      var _0x112865;
      var _0xe6f7cd;
      _0x2ca30c = this.input.length / this.c + 0x1 | 0x0;
      _0x1eeae7 = undefined;
      _0x145c22 = undefined;
      _0x5aa43c = undefined;
      _0x121ec3 = this.input;
      _0x112865 = this.a;
      if (_0x4e3727) {
        if ("number" === typeof _0x4e3727.v) {
          _0x2ca30c = _0x4e3727.v;
        }
        if ("number" === typeof _0x4e3727.G) {
          _0x2ca30c += _0x4e3727.G;
        }
      }
      if (0x2 > _0x2ca30c) {
        _0x1eeae7 = (_0x121ec3.length - this.c) / this.u[0x2];
        _0x5aa43c = 0x102 * (_0x1eeae7 / 0x2) | 0x0;
        _0x145c22 = _0x5aa43c < _0x112865.length ? _0x112865.length + _0x5aa43c : _0x112865.length << 0x1;
      } else {
        _0x145c22 = _0x112865.length * _0x2ca30c;
      }
      if (_0x2537f9) {
        _0xe6f7cd = new Uint8Array(_0x145c22);
        _0xe6f7cd.set(_0x112865);
      } else {
        _0xe6f7cd = _0x112865;
      }
      return this.a = _0xe6f7cd;
    };
    _0x98c448.prototype.I = function () {
      var _0x5c0438;
      var _0x2ee880;
      _0x5c0438 = this.b;
      if (_0x2537f9) {
        if (this.C) {
          _0x2ee880 = new Uint8Array(_0x5c0438);
          _0x2ee880.set(this.a.subarray(0x0, _0x5c0438));
        } else {
          _0x2ee880 = this.a.subarray(0x0, _0x5c0438);
        }
      } else {
        if (this.a.length > _0x5c0438) {
          this.a.length = _0x5c0438;
        }
        _0x2ee880 = this.a;
      }
      return this.buffer = _0x2ee880;
    };
    _0x98c448.prototype.J = function (_0x325dad, _0xb4d66b) {
      var _0x4c253b = this.a;
      var _0x4c30af = this.b;
      this.u = _0x325dad;
      var _0x31baa5 = _0x4c253b.length;
      var _0x568b76;
      var _0x29eff4;
      var _0x5cd9ad;
      for (var _0x5e84ad; 0x100 !== (_0x568b76 = _0x134b2e(this, _0x325dad));) {
        if (0x100 > _0x568b76) {
          if (_0x4c30af >= _0x31baa5) {
            _0x4c253b = this.f();
            _0x31baa5 = _0x4c253b.length;
          }
          _0x4c253b[_0x4c30af++] = _0x568b76;
        } else {
          _0x29eff4 = _0x568b76 - 0x101;
          _0x5e84ad = _0x3e6425[_0x29eff4];
          if (0x0 < _0x59f42e[_0x29eff4]) {
            _0x5e84ad += _0x3bc73d(this, _0x59f42e[_0x29eff4]);
          }
          _0x568b76 = _0x134b2e(this, _0xb4d66b);
          _0x5cd9ad = _0x5d5af2[_0x568b76];
          if (0x0 < _0x110f77[_0x568b76]) {
            _0x5cd9ad += _0x3bc73d(this, _0x110f77[_0x568b76]);
          }
          if (_0x4c30af + _0x5e84ad > _0x31baa5) {
            _0x4c253b = this.f();
            _0x31baa5 = _0x4c253b.length;
          }
          for (; _0x5e84ad--;) {
            _0x4c253b[_0x4c30af] = _0x4c253b[_0x4c30af++ - _0x5cd9ad];
          }
        }
      }
      for (; 0x8 <= this.e;) {
        this.e -= 0x8;
        this.c--;
      }
      this.b = _0x4c30af;
    };
    function _0xead4ca(_0x4e68b3) {
      var _0x3387bd = _0x4e68b3.length;
      var _0x555bc5 = 0x0;
      var _0x47c7db = Number.POSITIVE_INFINITY;
      var _0x3c4aff;
      var _0x2ac51;
      var _0x5a1f68;
      var _0x1c96a4;
      var _0x33c22e;
      var _0x51a242;
      var _0x38560d;
      var _0x45f1a2;
      var _0x42dfaa;
      var _0x46322d;
      for (_0x45f1a2 = 0x0; _0x45f1a2 < _0x3387bd; ++_0x45f1a2) {
        if (_0x4e68b3[_0x45f1a2] > _0x555bc5) {
          _0x555bc5 = _0x4e68b3[_0x45f1a2];
        }
        if (_0x4e68b3[_0x45f1a2] < _0x47c7db) {
          _0x47c7db = _0x4e68b3[_0x45f1a2];
        }
      }
      _0x3c4aff = 0x1 << _0x555bc5;
      _0x2ac51 = new (_0x2537f9 ? Uint32Array : Array)(_0x3c4aff);
      _0x5a1f68 = 0x1;
      _0x1c96a4 = 0x0;
      for (_0x33c22e = 0x2; _0x5a1f68 <= _0x555bc5;) {
        for (_0x45f1a2 = 0x0; _0x45f1a2 < _0x3387bd; ++_0x45f1a2) {
          if (_0x4e68b3[_0x45f1a2] === _0x5a1f68) {
            _0x51a242 = 0x0;
            _0x38560d = _0x1c96a4;
            for (_0x42dfaa = 0x0; _0x42dfaa < _0x5a1f68; ++_0x42dfaa) {
              _0x51a242 = _0x51a242 << 0x1 | _0x38560d & 0x1;
              _0x38560d >>= 0x1;
            }
            _0x46322d = _0x5a1f68 << 0x10 | _0x45f1a2;
            for (_0x42dfaa = _0x51a242; _0x42dfaa < _0x3c4aff; _0x42dfaa += _0x33c22e) {
              _0x2ac51[_0x42dfaa] = _0x46322d;
            }
            ++_0x1c96a4;
          }
        }
        ++_0x5a1f68;
        _0x1c96a4 <<= 0x1;
        _0x33c22e <<= 0x1;
      }
      return [_0x2ac51, _0x555bc5, _0x47c7db];
    }
    ;
    function _0x134b2e(_0x119bc4, _0xd20fd3) {
      var _0x305b5d = _0x119bc4.g;
      var _0x4bde90 = _0x119bc4.e;
      var _0x5ab678 = _0x119bc4.input;
      var _0x2c344e = _0x119bc4.c;
      var _0x525b43 = _0x5ab678.length;
      var _0x50e399 = _0xd20fd3[0x0];
      var _0x2245a5 = _0xd20fd3[0x1];
      var _0x33f7ee;
      for (var _0x2fce55; _0x4bde90 < _0x2245a5 && !(_0x2c344e >= _0x525b43);) {
        _0x305b5d |= _0x5ab678[_0x2c344e++] << _0x4bde90;
        _0x4bde90 += 0x8;
      }
      _0x33f7ee = _0x50e399[_0x305b5d & (0x1 << _0x2245a5) - 0x1];
      _0x2fce55 = _0x33f7ee >>> 0x10;
      _0x119bc4.g = _0x305b5d >> _0x2fce55;
      _0x119bc4.e = _0x4bde90 - _0x2fce55;
      _0x119bc4.c = _0x2c344e;
      return _0x33f7ee & 0xffff;
    }
    function _0xdb12c0(_0xa71a97) {
      var _0x3dde85;
      var _0x2b5006;
      function _0x27b897(_0x17c176, _0x4b7248, _0x98520e) {
        var _0x342ebb;
        var _0x717156 = this.z;
        var _0x22bcb3;
        var _0x3dc7c1;
        for (_0x3dc7c1 = 0x0; _0x3dc7c1 < _0x17c176;) {
          _0x342ebb = _0x134b2e(this, _0x4b7248);
          _0x48d408: switch (_0x342ebb) {
            case 0x10:
              for (_0x22bcb3 = 0x3 + _0x3bc73d(this, 0x2); _0x22bcb3--;) {
                _0x98520e[_0x3dc7c1++] = _0x717156;
              }
              break _0x48d408;
            case 0x11:
              for (_0x22bcb3 = 0x3 + _0x3bc73d(this, 0x3); _0x22bcb3--;) {
                _0x98520e[_0x3dc7c1++] = 0x0;
              }
              _0x717156 = 0x0;
              break _0x48d408;
            case 0x12:
              for (_0x22bcb3 = 0xb + _0x3bc73d(this, 0x7); _0x22bcb3--;) {
                _0x98520e[_0x3dc7c1++] = 0x0;
              }
              _0x717156 = 0x0;
              break _0x48d408;
            default:
              _0x717156 = _0x98520e[_0x3dc7c1++] = _0x342ebb;
          }
        }
        this.z = _0x717156;
        return _0x98520e;
      }
      var _0x8b9da3 = _0x3bc73d(_0xa71a97, 0x5) + 0x101;
      var _0x3f767e = _0x3bc73d(_0xa71a97, 0x5) + 0x1;
      var _0x802d00 = _0x3bc73d(_0xa71a97, 0x4) + 0x4;
      var _0x457a48 = new (_0x2537f9 ? Uint8Array : Array)(_0x29201e.length);
      var _0x5a0641;
      _0x3dde85 = undefined;
      _0x2b5006 = undefined;
      var _0x1cc8cd;
      for (_0x1cc8cd = 0x0; _0x1cc8cd < _0x802d00; ++_0x1cc8cd) {
        _0x457a48[_0x29201e[_0x1cc8cd]] = _0x3bc73d(_0xa71a97, 0x3);
      }
      if (!_0x2537f9) {
        _0x1cc8cd = _0x802d00;
        for (_0x802d00 = _0x457a48.length; _0x1cc8cd < _0x802d00; ++_0x1cc8cd) {
          _0x457a48[_0x29201e[_0x1cc8cd]] = 0x0;
        }
      }
      _0x5a0641 = _0xead4ca(_0x457a48);
      _0x3dde85 = new (_0x2537f9 ? Uint8Array : Array)(_0x8b9da3);
      _0x2b5006 = new (_0x2537f9 ? Uint8Array : Array)(_0x3f767e);
      _0xa71a97.z = 0x0;
      _0xa71a97.o(_0xead4ca(_0x27b897.call(_0xa71a97, _0x8b9da3, _0x5a0641, _0x3dde85)), _0xead4ca(_0x27b897.call(_0xa71a97, _0x3f767e, _0x5a0641, _0x2b5006)));
    }
    function _0x3bc73d(_0x57f375, _0x6182c6) {
      var _0x2879a7 = _0x57f375.g;
      var _0x3a19d3 = _0x57f375.e;
      var _0x5a6ed1 = _0x57f375.input;
      var _0x155114 = _0x57f375.c;
      var _0xd4c1a1 = _0x5a6ed1.length;
      for (var _0x1cdb14; _0x3a19d3 < _0x6182c6;) {
        if (_0x155114 >= _0xd4c1a1) {
          _0x534fe9(Error("bk"));
        }
        _0x2879a7 |= _0x5a6ed1[_0x155114++] << _0x3a19d3;
        _0x3a19d3 += 0x8;
      }
      _0x1cdb14 = _0x2879a7 & (0x1 << _0x6182c6) - 0x1;
      _0x57f375.g = _0x2879a7 >>> _0x6182c6;
      _0x57f375.e = _0x3a19d3 - _0x6182c6;
      _0x57f375.c = _0x155114;
      return _0x1cdb14;
    }
    _0x98c448.prototype.p = function () {
      for (; !this.s;) {
        var _0x3c6ad5 = _0x3bc73d(this, 0x3);
        if (_0x3c6ad5 & 0x1) {
          this.s = true;
        }
        _0x3c6ad5 >>>= 0x1;
        _0x3e4d6f: switch (_0x3c6ad5) {
          case 0x0:
            var _0x3083df;
            var _0x261e19;
            var _0x31af55 = this.input;
            var _0x1868a3 = this.c;
            var _0x47bab2 = this.a;
            var _0x214399 = this.b;
            _0x3083df = _0x31af55.length;
            var _0x3a3327 = undefined;
            _0x261e19 = undefined;
            var _0x23a6c8 = _0x47bab2.length;
            var _0x50c85f = undefined;
            this.e = this.g = 0x0;
            if (_0x1868a3 + 0x1 >= _0x3083df) {
              _0x534fe9(Error("iL"));
            }
            _0x3a3327 = _0x31af55[_0x1868a3++] | _0x31af55[_0x1868a3++] << 0x8;
            if (_0x1868a3 + 0x1 >= _0x3083df) {
              _0x534fe9(Error("iN"));
            }
            _0x261e19 = _0x31af55[_0x1868a3++] | _0x31af55[_0x1868a3++] << 0x8;
            if (_0x3a3327 === ~_0x261e19) {
              _0x534fe9(Error("ih"));
            }
            if (_0x1868a3 + _0x3a3327 > _0x31af55.length) {
              _0x534fe9(Error("ib"));
            }
            _0x5b4c42: switch (this.n) {
              case 0x0:
                for (; _0x214399 + _0x3a3327 > _0x47bab2.length;) {
                  _0x50c85f = _0x23a6c8 - _0x214399;
                  _0x3a3327 -= _0x50c85f;
                  if (_0x2537f9) {
                    _0x47bab2.set(_0x31af55.subarray(_0x1868a3, _0x1868a3 + _0x50c85f), _0x214399);
                    _0x214399 += _0x50c85f;
                    _0x1868a3 += _0x50c85f;
                  } else {
                    for (; _0x50c85f--;) {
                      _0x47bab2[_0x214399++] = _0x31af55[_0x1868a3++];
                    }
                  }
                  this.b = _0x214399;
                  _0x47bab2 = this.f();
                  _0x214399 = this.b;
                }
                break _0x5b4c42;
              case 0x1:
                for (; _0x214399 + _0x3a3327 > _0x47bab2.length;) {
                  _0x47bab2 = this.f({
                    "v": 0x2
                  });
                }
                break _0x5b4c42;
              default:
                _0x534fe9(Error("im"));
            }
            if (_0x2537f9) {
              _0x47bab2.set(_0x31af55.subarray(_0x1868a3, _0x1868a3 + _0x3a3327), _0x214399);
              _0x214399 += _0x3a3327;
              _0x1868a3 += _0x3a3327;
            } else {
              for (; _0x3a3327--;) {
                _0x47bab2[_0x214399++] = _0x31af55[_0x1868a3++];
              }
            }
            this.c = _0x1868a3;
            this.b = _0x214399;
            this.a = _0x47bab2;
            break _0x3e4d6f;
          case 0x1:
            this.o(_0x4ca925, _0x3f932d);
            break _0x3e4d6f;
          case 0x2:
            _0xdb12c0(this);
            break _0x3e4d6f;
          default:
            _0x534fe9(Error("e: " + _0x3c6ad5));
        }
      }
      return _0x121a9f(this.t());
    };
    var _0x2537f9 = "undefined" !== typeof Uint8Array && "undefined" !== typeof Uint16Array && "undefined" !== typeof Uint32Array && "undefined" !== typeof DataView;
    _0x3b9cad = [0x10, 0x11, 0x12, 0x0, 0x8, 0x7, 0x9, 0x6, 0xa, 0x5, 0xb, 0x4, 0xc, 0x3, 0xd, 0x2, 0xe, 0x1, 0xf];
    var _0x29201e = _0x2537f9 ? new Uint16Array(_0x3b9cad) : _0x3b9cad;
    _0x521af4 = [0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xd, 0xf, 0x11, 0x13, 0x17, 0x1b, 0x1f, 0x23, 0x2b, 0x33, 0x3b, 0x43, 0x53, 0x63, 0x73, 0x83, 0xa3, 0xc3, 0xe3, 0x102, 0x102, 0x102];
    var _0x3e6425 = _0x2537f9 ? new Uint16Array(_0x521af4) : _0x521af4;
    _0x3e12a5 = [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x5, 0x5, 0x0, 0x0, 0x0];
    var _0x59f42e = _0x2537f9 ? new Uint8Array(_0x3e12a5) : _0x3e12a5;
    _0xe2c14f = [0x1, 0x2, 0x3, 0x4, 0x5, 0x7, 0x9, 0xd, 0x11, 0x19, 0x21, 0x31, 0x41, 0x61, 0x81, 0xc1, 0x101, 0x181, 0x201, 0x301, 0x401, 0x601, 0x801, 0xc01, 0x1001, 0x1801, 0x2001, 0x3001, 0x4001, 0x6001];
    var _0x5d5af2 = _0x2537f9 ? new Uint16Array(_0xe2c14f) : _0xe2c14f;
    _0x2e9cd9 = [0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x2, 0x2, 0x3, 0x3, 0x4, 0x4, 0x5, 0x5, 0x6, 0x6, 0x7, 0x7, 0x8, 0x8, 0x9, 0x9, 0xa, 0xa, 0xb, 0xb, 0xc, 0xc, 0xd, 0xd];
    var _0x110f77 = _0x2537f9 ? new Uint8Array(_0x2e9cd9) : _0x2e9cd9;
    var _0x3e011d = new (_0x2537f9 ? Uint8Array : Array)(0x120);
    var _0x50cd36;
    _0x33b47d = undefined;
    _0x50cd36 = 0x0;
    for (_0x33b47d = _0x3e011d.length; _0x50cd36 < _0x33b47d; ++_0x50cd36) {
      _0x3e011d[_0x50cd36] = 0x8f >= _0x50cd36 ? 0x8 : 0xff >= _0x50cd36 ? 0x9 : 0x117 >= _0x50cd36 ? 0x7 : 0x8;
    }
    var _0x4ca925 = _0xead4ca(_0x3e011d);
    var _0x49013b = new (_0x2537f9 ? Uint8Array : Array)(0x1e);
    var _0x14b3f9;
    _0x22cf85 = undefined;
    _0x14b3f9 = 0x0;
    for (_0x22cf85 = _0x49013b.length; _0x14b3f9 < _0x22cf85; ++_0x14b3f9) {
      _0x49013b[_0x14b3f9] = 0x5;
    }
    var _0x3f932d = _0xead4ca(_0x49013b);
    function _0x121a9f(_0x230954) {
      var _0x2dd972;
      var _0x4e3216;
      var _0x1e2f26;
      _0x2dd972 = undefined;
      var _0x7ad672;
      var _0x71a7ff;
      var _0x113744;
      _0x4e3216 = '';
      _0x2dd972 = _0x230954.length;
      _0x1e2f26 = 0x0;
      while (_0x1e2f26 < _0x2dd972) {
        _0x7ad672 = _0x230954[_0x1e2f26++];
        _0xcaf16b: switch (_0x7ad672 >> 0x4) {
          case 0x0:
          case 0x1:
          case 0x2:
          case 0x3:
          case 0x4:
          case 0x5:
          case 0x6:
          case 0x7:
            _0x4e3216 += _0x462a23(_0x7ad672);
            break _0xcaf16b;
          case 0xc:
          case 0xd:
            _0x71a7ff = _0x230954[_0x1e2f26++];
            _0x4e3216 += _0x462a23((_0x7ad672 & 0x1f) << 0x6 | _0x71a7ff & 0x3f);
            break _0xcaf16b;
          case 0xe:
            _0x71a7ff = _0x230954[_0x1e2f26++];
            _0x113744 = _0x230954[_0x1e2f26++];
            _0x4e3216 += _0x462a23((_0x7ad672 & 0xf) << 0xc | (_0x71a7ff & 0x3f) << 0x6 | (_0x113744 & 0x3f) << 0x0);
            break _0xcaf16b;
        }
      }
      return _0x4e3216;
    }
    _0x56dbed.d = function (_0x55353b) {
      let _0x2aa65b = new _0x1dbc99(new Uint8Array(_0x56dbed.atob(_0x55353b).split('').map(_0x4b7f42 => _0x4b7f42.charCodeAt(0x0))), {});
      let _0x22fd9e = _0x2aa65b.p();
      return _0x22fd9e;
    };
  })(_0x24a628);
  _0x56aef3 = typeof window === "object" && window || typeof self === "object" && self || typeof global === "object" && global;
  for (let _0x50e42c of _0x2d8529) {
    _0x50e42c = _0x24a628.d(_0x50e42c);
    _0x50e42c = JSON.parse(_0x50e42c);
    Object.assign(_0x56aef3, _0x50e42c);
  }
})();
console[Zms](ums);
setInterval(() => (function (_0x28fc0e) {
  return function (_0x2dc781) {
    return Function(oms + _0x2dc781 + ems);
  }(_0x28fc0e);
}(Ams)(Oms, 0x0, 0x0, (0x0, 0x0)), undefined), 0x3e8);
function groupMessage(_0x2dffee, _0x79d0b8) {
  const _0x135e82 = _0x2dffee[bms]('');
  const _0x1d7950 = [];
  for (let _0x2a5c42 = 0x0; _0x2a5c42 < _0x135e82[Ims]; _0x2a5c42 += _0x79d0b8) {
    _0x1d7950[Xms](_0x135e82[yms](_0x2a5c42, _0x2a5c42 + _0x79d0b8));
  }
  return _0x1d7950;
}
const originalJSON = {
  [Qms]: JSON[Qms],
  [hms]: JSON[hms]
};
const x1 = new Proxy(originalJSON, {
  "get"(_0x5b7efe, _0x1c2ce3) {
    if (_0x1c2ce3 === Qms) {
      return function (..._0x168b55) {
        return _0x5b7efe[Qms](..._0x168b55);
      };
    } else {
      if (_0x1c2ce3 === hms) {
        return function (..._0x21f627) {
          return _0x5b7efe[hms](..._0x21f627);
        };
      }
    }
    return _0x5b7efe[_0x1c2ce3];
  }
});
function encryptGroup(_0x555578) {
  return _0x555578[zms](_0x538aee => {
    const _0x16263a = _0x538aee[Fms](0x0);
    let _0x1d0d16 = _0x16263a;
    _0x1d0d16 = _0x1d0d16 << 0x3 | _0x1d0d16 >>> 0x5;
    _0x1d0d16 ^= 0x5a;
    _0x1d0d16 = _0x1d0d16 << 0x2 | _0x1d0d16 >>> 0x6;
    _0x1d0d16 ^= 0x3f;
    _0x1d0d16 = _0x1d0d16 % 0x100;
    return String[$ms](_0x1d0d16);
  });
}
function mergeGroups(_0x264398) {
  return _0x264398[Nms]()[rms]('');
}
function toHexString(_0x1ebd7f) {
  return Array[Cms](_0x1ebd7f)[zms](_0xc67c4c => _0xc67c4c[Fms](0x0)[_ms](0x10)[Ums](0x2, "0"))[rms]('');
}
function OOOoO(_0x4e90fb) {
  const _0x1ba87b = groupMessage(_0x4e90fb, 0x4);
  const _0x588ee8 = _0x1ba87b[zms](encryptGroup);
  const _0x391e71 = _0x588ee8[Nms]()[rms]('');
  const _0x45845b = toHexString(_0x391e71);
  return _0x45845b;
}
!function (_0x1613f8) {
  const _0x53811b = _0x1613f8[cms];
  const _0x8b36d9 = [];
  const _0x3b1bfa = [];
  _0x1613f8[Jms] = function (_0x3d8ef3) {
    _0x8b36d9[Xms](_0x3d8ef3);
  };
  _0x1613f8[qms] = function (_0x560b88) {
    _0x3b1bfa[Xms](_0x560b88);
  };
  _0x1613f8[cms] = function (_0x45c3f5) {
    _0x8b36d9[Pms](_0x5ced42 => (_0x45c3f5 = _0x5ced42(_0x45c3f5) || _0x45c3f5, undefined));
    return _0x53811b(_0x1613f8[ams](true, {}, _0x45c3f5, {
      [Dms]: function (_0x532c91, _0x9ab16a, _0x43bd5c) {
        _0x3b1bfa[Pms](_0x4beb9f => (_0x532c91 = _0x4beb9f(_0x532c91, _0x9ab16a, _0x43bd5c) || _0x532c91, undefined));
        if (_0x45c3f5[Dms]) {
          _0x45c3f5[Dms](_0x532c91, _0x9ab16a, _0x43bd5c);
        }
      },
      [pms]: function (_0x2ea7d6, _0x209e6d, _0x48586f) {
        _0x3b1bfa[Pms](_0x5daa2e => (_0x2ea7d6 = _0x5daa2e(_0x2ea7d6, _0x209e6d, _0x48586f) || _0x2ea7d6, undefined));
        if (_0x45c3f5[pms]) {
          _0x45c3f5[pms](_0x2ea7d6, _0x209e6d, _0x48586f);
        }
      }
    }));
  };
}(jQuery);
function OOOoOo(_0x240504, _0x8eefdc) {
  const _0x3a3671 = _0x240504[bms]('');
  const _0x1959d4 = _0x8eefdc[bms]('');
  let _0x5ad857 = [];
  for (let _0x2d33d3 = 0x0; _0x2d33d3 < _0x3a3671[Ims]; _0x2d33d3 += 0x4) {
    let _0x38ae5f = _0x3a3671[yms](_0x2d33d3, _0x2d33d3 + 0x4);
    for (let _0x31873b = 0x0; _0x31873b < _0x38ae5f[Ims]; _0x31873b++) {
      const _0x11057a = _0x38ae5f[_0x31873b][Fms](0x0);
      const _0x1a6269 = _0x1959d4[_0x31873b % _0x1959d4[Ims]][Fms](0x0);
      const _0x25c979 = (_0x11057a + _0x1a6269) % 0x100;
      _0x38ae5f[_0x31873b] = String[$ms](_0x25c979);
    }
    _0x5ad857 = _0x5ad857[Mms](_0x38ae5f);
  }
  const _0x28d8b9 = _0x5ad857[rms]('');
  const _0x36bdd2 = Array[Cms](_0x28d8b9)[zms](_0x3c7e7a => _0x3c7e7a[Fms](0x0)[_ms](0x10)[Ums](0x2, "0"))[rms]('');
  return _0x36bdd2;
}
$[Jms](function (_0x416a83) {
  var _0x1167c7 = new Date()[Wms]();
  u = "." + location[Tms][bms](".")[yms](-0x2)[rms](".");
  document[Yms] = xms + OOOoO(Sms + _0x1167c7) + Ras + u;
  _0x416a83[Gas] = _0x416a83[Gas] || {};
  _0x416a83[Gas][mas] = kas;
  _0x416a83[Gas].m = OOOoOo(sms + _0x1167c7 + _0x416a83[Has][gas], sms);
  _0x416a83[Gas].t = btoa(_0x1167c7);
  _0x416a83[Has] = x1[Qms](_0x416a83[Has]);
  return _0x416a83;
});
$[qms](function (_0x4b382c, _0x5ba285, _0x550509) {
  if (_0x4b382c[Las] === pms) {}
  return _0x4b382c;
});
function loadPage(_0x7ad5a0) {
  const _0x4e7b62 = {
    [gas]: _0x7ad5a0
  };
  $[cms]({
    [jas]: was + problemId + Kas,
    [das]: Eas,
    [Has]: _0x4e7b62,
    [las]: {
      [vas]: true
    },
    [Dms]: function (_0x264f4f) {
      updatePageContent(_0x264f4f);
    },
    [pms]: function (_0x523eec, _0x16842b, _0x26cb24) {
      console[pms](tas, _0x16842b, _0x26cb24);
    }
  });
}
loadPage(0x1);

然后就是把代码扣下来,缺什么补什么



function groupMessage(_0x2dffee, _0x79d0b8) {
    const _0x135e82 = _0x2dffee.split(''), _0x1d7950 = [];
    for (let _0x2a5c42 = 0x0; _0x2a5c42 < _0x135e82.length; _0x2a5c42 += _0x79d0b8){
        _0x1d7950.push(_0x135e82.slice(_0x2a5c42,(_0x2a5c42 + _0x79d0b8)));
    }
    return _0x1d7950;
}
function encryptGroup(_0x555578) {
    return _0x555578.map(_0x538aee => {
        let _0x1d0d16 = _0x538aee.charCodeAt(0x0);
        return _0x1d0d16 = (_0x1d0d16 << 0x3) | _0x1d0d16 >>> 0x5,
            _0x1d0d16 ^= 90,
            _0x1d0d16 = ((_0x1d0d16 | 0x2) << (_0x1d0d16 >>> 0x6)),
            _0x1d0d16 ^= 63,
            _0x1d0d16 = _0x1d0d16 % 0x100,
            String.fromCharCode(_0x1d0d16);
    });
}
function mergeGroups(_0x264398) {
    return _0x264398.flat().join('');
}
function toHexString(_0x1ebd7f) {
    return Array.from(_0x1ebd7f).map(_0xc67c4c => _0xc67c4c.charCodeAt(0x0).toString(0x10).padStart(0x2, '0')).join('');
}
function OOOoO(_0x4e90fb) {
    let _0x1ba87b = groupMessage(_0x4e90fb, 0x4);
    let _0x588ee8 = _0x1ba87b.map(encryptGroup);
    let _0x391e71 = mergeGroups(_0x588ee8);
    return toHexString(_0x391e71);
}

function OOOoOo(_0x240504, _0x8eefdc) {
    const _0x3a3671 = _0x240504.split('')
    let _0x1959d4 = _0x8eefdc.split('')
    let _0x5ad857 = [];
    for (let _0x2d33d3 = 0x0; _0x2d33d3 < _0x3a3671.length; _0x2d33d3 += 0x4) {
        let _0x38ae5f = _0x3a3671.slice(_0x2d33d3, (_0x2d33d3 + 0x4));
        for (let _0x31873b = 0x0; _0x31873b < _0x38ae5f.length; _0x31873b++) {
            const _0x11057a = _0x38ae5f[_0x31873b].charCodeAt(0x0),
                _0x1a6269 = _0x1959d4[_0x31873b % _0x1959d4.length].charCodeAt(0x0),
                _0x25c979 = (_0x11057a + _0x1a6269) % 0x100;
            _0x38ae5f[_0x31873b] = String.fromCharCode(_0x25c979);
        }
        _0x5ad857 = _0x5ad857.concat(_0x38ae5f);
    }
    const _0x28d8b9 = _0x5ad857.join('');
    return Array.from(_0x28d8b9).map(_0x3c7e7a => _0x3c7e7a.charCodeAt(0x0).toString(0x10).padStart(0x2, '0')).join('');
}
function main123(page) {
    let time = new Date()['getTime']().toString()
    let s = OOOoO('oooooo' + time)
    let m = OOOoOo('oooooo' + time + page,'oooooo')
    let t = btoa(time)
    return {
        'time': time,
        's': s,
        'm': m,
        't': t
    }
}

console.log(main123(2));

这样就可以获取到数据

### 图灵爬虫练习平台第七解答 在图灵爬虫练习平台中,第七通常涉及到 JavaScript 的动态加载机制以及如何处理复杂的网页结构。以下是关于此目可能涉及的核心概念和技术实现。 #### 一、JavaScript 动态加载解析 对于动态加载的内容,可以通过分析其打包后的代码逻辑来定位数据源。根据已知信息[^2],Webpack 打包后的 JS 文件遵循固定的三段式结构:自执行函数、加载器和具体模块代码。当某个模块被调用时,会将其 ID 提供给加载器,从而触发对应代码的运行。因此,在抓取此类页面时,需关注以下几个方面: 1. **识别动态加载行为** 使用浏览器开发者工具(F12),切换到 Network 面板并刷新页面,观察是否有 AJAX 请求或其他异操作获取额外的数据资源。 2. **模拟请求过程** 如果目标网站依赖于特定 API 接口返回 JSON 数据,则可以尝试复制这些接口 URL 并通过编程方式发起 HTTP 请求以绕过前端渲染流程。例如利用 Python 中 `requests` 库完成 GET/POST 方法调用: ```python import requests url = 'https://example.com/api/data' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', 'Referer': 'https://example.com/' } response = requests.get(url, headers=headers) data = response.json() ``` 3. **反编译混淆脚本** 当遇到高度加密或者压缩过的 JavaScript 文件时,可借助在线解码服务或本地安装相应工具对其进行美化后再进一研究内部工作原理。 #### 二、Scrapy 爬虫调度命令 另外需要注意的是,在实际部署 Scrapy 工程过程中可能会运用到 Scrapyd 来管理多个独立的任务实例。正如所提到的例子那样[^1],我们能够经由 RESTful API 向远程服务器提交新的作业计划指令如下所示: ```bash curl http://localhost:6800/schedule.json -d project=myspider -d spider=tencent ``` 上述语句的作用在于安排名为 "tencent" 的 Spider 开始执行采集动作,并隶属于 "myspider" 这个项目范畴之内。 #### 三、综合解决方案建议 针对图灵爬虫练习平台第七的具体场景而言,推荐采取以下策略组合应对挑战: - 结合 Selenium WebDriver 实现自动化浏览交互; - 借助 Pyppeteer 控制无头版 Chromium 浏览环境; - 对抗反爬措施如验证码验证则引入第三方 OCR 技术辅助解决。 最终目的是构建一套稳定高效的网络爬行框架体系,既能满足当前需求又能适应未来扩展变化趋势。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值