如何恢复混淆的属性名称?

IT技术 javascript obfuscation deobfuscation
2021-03-13 14:43:52

所以我正在解密一个 javascript 代码,在网上看了很长时间后,我不知道如何快速解密这个代码。

代码从一个包含整个脚本的所有字符串的大数组开始。

 var _$_21e2 = ["jQuery", "userAgent", "test", "onmouseup", "onmousemove", "pink", "greenyellow", "gold"]

数组中有更多的字符串,但这只是一个例子。

然后在其余的代码中,它只是通过 id 调用数组中的字符串。

_$_21e2[29]

我知道我可以手动执行此操作,但是大约有 120 个字符串,因此执行此操作会花费太多时间。有没有办法快速解密这个?提前致谢。

1个回答

一个简单的正则表达式replace将执行以下操作:

var _$_21e2 = ["jQuery", "userAgent", "test", "onmouseup", "onmousemove", "pink", "greenyellow", "gold"];
return code.replace(/\[_\$_21e2\[(\d+)\]\]/g, function(_, i) {
    return "."+_$_21e2[i];
}).replace(/_\$_21e2\[(\d+)\]/g, function(_, i) {
    return JSON.stringify(_$_21e2[i]);
});

给定code作为字符串,这将产生具有人类可读的属性名称和文字的代码字符串。

抱歉回复晚了,完全按照我的意愿工作!
2021-05-06 14:43:52
非常感谢,但我将如何使用它?
2021-05-12 14:43:52
不起作用,数组中的每个字符串都返回“未定义”示例:for (bz = (3 * bz + u) / 4, bH = (3 * bH + bq) / 4, W.undefined(), W .undefined = undefined, W.undefined = 10, W.undefined = undefined, W.undefined = undefined, W.undefined = 0.5, W.undefined(), bn = 0; bn < X.undefined; bn++) { W. undefined(X[bn].undefined, X[bn].undefined), W.undefined(bz, bH)
2021-05-12 14:43:52
正如我所说,将您的脚本作为code变量中的字符串
2021-05-17 14:43:52