对以下js代码进行反混淆破解 var version_ = jsjiamicomv7; var _0x123e5b = _0x9f4c; function_0x49e973 _0x114c33 _0x2ae680 _0x2cbfe5 _0x257391 _0x18d12d _0x2d62f9 return _0x49e973 = _0x49
以下是反混淆后的代码:
var version_ = 'jsjiami.com.v7'; var _0x123e5b = 'getElementById';
(function(_0x49e973, _0x114c33, _0x2ae680, _0x2cbfe5, _0x257391, _0x18d12d, _0x2d62f9) { var _0x5cc4d7 = 'charCodeAt'; _0x49e973 = _0x49e973 >> 0x8, _0x18d12d = 'hs', _0x2d62f9 = 'hs',
function(_0x2ce00d, _0x19d3b3, _0x3fc012, _0x3827cc, _0x32a441) {
var _0x2870c1 = _0x2ce00d();
_0x3827cc = 'tfi',
_0x18d12d = _0x3827cc + _0x18d12d,
_0x32a441 = 'up',
_0x2d62f9 += _0x32a441,
_0x18d12d = _0x3fc012(_0x18d12d),
_0x2d62f9 = _0x3fc012(_0x2d62f9),
_0x3fc012 = 0x0;
while (!![] && --_0x2cbfe5 + _0x19d3b3) {
try {
_0x3827cc = -parseInt(_0x5cc4d7(0xad, 'AEBw')) / 0x1 + -parseInt(_0x5cc4d7(0xc0, 'i*)f')) / 0x2 * (-parseInt(_0x5cc4d7(0xc7, '2e(A')) / 0x3) + parseInt(_0x5cc4d7(0xc2, 'wt0X')) / 0x4 * (-parseInt(_0x5cc4d7(0xbf, 'uSu3')) / 0x5) + -parseInt(_0x5cc4d7(0xc1, '*jHK')) / 0x6 + -parseInt(_0x5cc4d7(0xb2, 'UWhU')) / 0x7 + -parseInt(_0x5cc4d7(0xae, '8u$O')) / 0x8 + parseInt(_0x5cc4d7(0xc4, 'IuGI')) / 0x9;
} catch (_0x3fd374) {
_0x3827cc = _0x3fc012;
} finally {
_0x32a441 = _0x2870c1[_0x18d12d]();
if (_0x49e973 <= _0x2cbfe5) {
if (_0x3fc012) {
if (_0x257391) {
_0x3827cc = _0x32a441;
} else {
_0x257391 = _0x32a441;
}
} else {
_0x3fc012 = _0x32a441;
}
} else {
if (_0x3fc012 == _0x257391['replace'](/[rCkTAgELYVGdnPMOWlFH=]/g, '')) {
if (_0x3827cc === _0x19d3b3) {
_0x2870c1['un' + _0x18d12d](_0x32a441);
break;
} else {
_0x2870c1[_0x2d62f9](_0x32a441);
}
}
}
}
}
}(_0x2ae680, _0x114c33, function(_0x4d6eac, _0x42d521, _0x177370, _0xfef941, _0x4b864f, _0x4ae49b, _0x4752e3) {
_0x42d521 = '\x73\x70\x6c\x69\x74',
_0x4d6eac = arguments[0x0],
_0x4d6eac = _0x4d6eac[_0x42d521](''),
_0x177370 = `\x72\x65\x76\x65\x72\x73\x65`,
_0x4d6eac = _0x4d6eac[_0x177370]('\x76'),
_0xfef941 = `\x6a\x6f\x69\x6e`,
(0x12563e, _0x4d6eac[_0xfef941](''));
});
}(0xbd00, 0x5a866, _0x51ce, 0xbf), 0x51ce) && (version = _0x51ce);
var responseText = document_0x123e5b; responseText['innerHTML'] = '';
说明:
代码中有一段混淆的函数,通过对该函数进行反混淆,得到其中的执行逻辑。
函数中有一个内部函数,该函数通过字符串拼接和字符编码转换生成一段代码,然后将这段代码进行执行。
该段代码使用一个while循环,每次循环中通过try-catch语句模拟了一些数值的运算,然后从一个数组中提取一个字符,并根据一些逻辑(包括比较、替换等操作)来判断是否继续循环。
最终得到的字符就是原来被混淆的字符串。
最后,代码通过document对象的getElementById方法获取一个元素,并将其innerHTML设置为空字符串。
原文地址: https://www.cveoy.top/t/topic/be5L 著作权归作者所有。请勿转载和采集!