thepoy 发表于 2021-4-2 11:25

【js】调试某网站js时遇到了知识盲区,请高手帮忙释义

原函数内容:
function _0x4f4255(_0x3ba732) {
    var _0x36c422 = {
      'Pfxgn': function(_0x302f4c, _0x5c7745) {
            return _0x302f4c === _0x5c7745;
      },
      'sFzZZ': _0x5b71('0x188'),
      'Boleo': _0x5b71('0x189'),
      'TnYaD': _0x5b71('0x18a'),
      'CCbWP': function(_0x5d2ad8, _0x5c56d2) {
            return _0x5d2ad8 !== _0x5c56d2;
      },
      'cWmTL': function(_0x546d11, _0x55047f) {
            return _0x546d11 + _0x55047f;
      },
      'KzPaa': function(_0x58920f, _0x2d8afd) {
            return _0x58920f / _0x2d8afd;
      },
      'ufPsK': _0x5b71('0x17'),
      'VhytW': function(_0x515079, _0x1e2f61) {
            return _0x515079 % _0x1e2f61;
      },
      'eZvqm': _0x5b71('0x18b'),
      'HwDUY': _0x5b71('0x18c'),
      'nnxXT': _0x5b71('0x18d'),
      'blElB': function(_0x3eef66, _0x1358cc) {
            return _0x3eef66 + _0x1358cc;
      },
      'PAZam': _0x5b71('0x18e'),
      'VhZXn': function(_0x52f6e0, _0xe3c4a1) {
            return _0x52f6e0(_0xe3c4a1);
      }
    };
    function _0x3aad19(_0x3ac151) {
      if (_0x36c422(typeof _0x3ac151, _0x36c422)) {
            return function(_0x14fa2c) { }(_0x36c422)(_0x36c422);
      } else {
            if (_0x36c422(_0x36c422('' + (_0x3ac151 / _0x3ac151))], 0x1) || _0x36c422(_0x36c422(_0x3ac151, 0x14), 0x0)) {
                (function() {
                  return !![];
                }(_0x36c422(_0x36c422, _0x36c422))(_0x36c422));
            } else {
                (function() {
                  return ![];
                }(_0x36c422(_0x36c422, _0x36c422))(_0x36c422));
            }
      }
      _0x36c422(_0x3aad19, ++_0x3ac151);
    }
    try {
      if (_0x3ba732) {
            return _0x3aad19;
      } else {
            _0x36c422(_0x3aad19, 0x0);
      }
    } catch (_0x315828) { }
}

转化成能看懂的函数:
function _0x4f4255(_0x3ba732) {
    function _0x3aad19(_0x3ac151) {
      if (typeof _0x3ac151 === "string") {
            return function(_0x14fa2c) { }["constructor"]("while (true) {}")["apply"]("counter");// 这行代码是什么意思?
      } else {
            if (("" + (_0x3ac151 / _0x3ac151)).length === 1 || _0x3ac151 % 20 === 0) {
                (function() {
                  return true;
                }["constructor"]("debugger")["call"]("action"));// 这行代码是什么意思?
            } else {
                (function() {
                  return false;
                }["constructor"]("debugger")["apply"]("stateObject"));   // 这行代码是什么意思?
            }
      }
      _0x3aad19(++_0x3ac151);
    }
    try {
      if (_0x3ba732) {
            return _0x3aad19;
      } else {
            _0x3aad19(0);
      }
    } catch (e) { }
}

爬虫时遇到的无限debugger,这个js文件里多处设置无限debugger的陷阱,其他陷阱基本已解决,就卡到了这里,因为看不懂,所以不知道如何解决,请高手帮忙解决一下,谢谢

diaosi123 发表于 2021-4-2 12:26

直接掉不香吗?非要费力解密

thepoy 发表于 2021-4-2 15:06

本帖最后由 thepoy 于 2021-4-2 15:07 编辑

diaosi123 发表于 2021-4-2 12:26
直接掉不香吗?非要费力解密
header里有多个动态参数不知道从哪里来的,直接调没有用啊。
经过费力调试发现这些参数由多个js文件生成,就不得不解密了
页: [1]
查看完整版本: 【js】调试某网站js时遇到了知识盲区,请高手帮忙释义