原函数内容:
[JavaScript] 纯文本查看 复制代码 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[_0x5b71('0x18f')](typeof _0x3ac151, _0x36c422[_0x5b71('0x190')])) {
return function(_0x14fa2c) { }[_0x5b71('0x176')](_0x36c422[_0x5b71('0x191')])[_0x5b71('0x0')](_0x36c422[_0x5b71('0x192')]);
} else {
if (_0x36c422[_0x5b71('0x193')](_0x36c422[_0x5b71('0x194')]('' + (_0x3ac151 / _0x3ac151))[_0x36c422[_0x5b71('0x196')]], 0x1) || _0x36c422[_0x5b71('0x18f')](_0x36c422[_0x5b71('0x197')](_0x3ac151, 0x14), 0x0)) {
(function() {
return !![];
}[_0x5b71('0x176')](_0x36c422[_0x5b71('0x194')](_0x36c422[_0x5b71('0x198')], _0x36c422[_0x5b71('0x199')]))[_0x5b71('0x19a')](_0x36c422[_0x5b71('0x19b')]));
} else {
(function() {
return ![];
}[_0x5b71('0x176')](_0x36c422[_0x5b71('0x19c')](_0x36c422[_0x5b71('0x198')], _0x36c422[_0x5b71('0x199')]))[_0x5b71('0x0')](_0x36c422[_0x5b71('0x19d')]));
}
}
_0x36c422[_0x5b71('0x19e')](_0x3aad19, ++_0x3ac151);
}
try {
if (_0x3ba732) {
return _0x3aad19;
} else {
_0x36c422[_0x5b71('0x19e')](_0x3aad19, 0x0);
}
} catch (_0x315828) { }
}
转化成能看懂的函数:
[JavaScript] 纯文本查看 复制代码 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的陷阱,其他陷阱基本已解决,就卡到了这里,因为看不懂,所以不知道如何解决,请高手帮忙解决一下,谢谢
|