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

How to restore obfuscated property names?

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

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

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

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

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

_$_21e2[29]

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

一个简单的regex 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 作为字符串,这将生成具有人类可读的 属性 名称和文字的代码字符串。