不知道大家有没有被JS代码混淆折磨过,我之前搞爬虫的时候,也经常被OB代码混淆搞到心态崩溃,但是自从接触了大模型,腰不疼了,腿不酸了,OB代码直接交给大模型,简直不要太爽
这是一段经过OB混淆之后的代码
(function (_0x3e0fd2, _0x4d9507) {
var _0x35a832 = _0x49f9, _0x24b53a = _0x3e0fd2();
while (!![]) {
try {
var _0x384e17 = parseInt(_0x35a832(0x70)) / 0x1 + parseInt(_0x35a832(0x74)) / 0x2 * (parseInt(_0x35a832(0x71)) / 0x3) + parseInt(_0x35a832(0x77)) / 0x4 + -parseInt(_0x35a832(0x7b)) / 0x5 * (-parseInt(_0x35a832(0x78)) / 0x6) + parseInt(_0x35a832(0x6f)) / 0x7 * (-parseInt(_0x35a832(0x72)) / 0x8) + -parseInt(_0x35a832(0x79)) / 0x9 * (parseInt(_0x35a832(0x76)) / 0xa) + -parseInt(_0x35a832(0x75)) / 0xb * (parseInt(_0x35a832(0x7a)) / 0xc);
if (_0x384e17 === _0x4d9507) break; else _0x24b53a['push'](_0x24b53a['shift']());
} catch (_0x2befb5) {
_0x24b53a['push'](_0x24b53a['shift']());
}
}
}(_0x396e, 0xad666));
function hi() {
var _0x20619c = _0x49f9;
console[_0x20619c(0x73)]('Hello\x20World!');
}
function _0x49f9(_0x30b03a, _0x5089e4) {
var _0x396e7c = _0x396e();
return _0x49f9 = function (_0x49f929, _0x5aa706) {
_0x49f929 = _0x49f929 - 0x6f;
var _0x1df762 = _0x396e7c[_0x49f929];
return _0x1df762;
}, _0x49f9(_0x30b03a, _0x5089e4);
}
hi();
function _0x396e() {
var _0x20721f = ['26vRQjos', '352XPZRnp', '198430jvTVQT', '5553740GCzFmR', '6723558KGzclN', '9lDhkVw', '858180FVJhEP', '5eMHKUA', '5257oBQoZa', '397536fXbNYr', '145083vijLVr', '5504RSNMkb', 'log'];
_0x396e = function () {
return _0x20721f;
};
return _0x396e();
}
大家也可以自行解一下,看看和大模型最终解出来的结果进行对比
我放一个ChatGPT3.5的截图
大家自行感受一下!!!! 虽然这个案例还不能说明什么,但是大模型在面对JS逆向的代码混淆,可以给大家一个思路,可以根据这个思路来进行还原。强烈建议爬虫工程师学习一下大模型!!!