温馨提示:本文翻译自stackoverflow.com,查看原文请点击:javascript - How to restore obfuscated property names?
deobfuscation javascript obfuscation

javascript - 如何还原混淆的属性名称?

发布于 2020-04-22 09:53:32

因此,我正在解密一个javascript代码,并且在互联网上寻找了很长时间之后,我不知道如何快速解密这种方法。

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

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

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

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

_$_21e2[29]

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

查看更多

提问者
Bert Janssen
被浏览
13
Bergi 2015-06-17 06:18

一个简单的正则表达式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为字符串,这将产生带有人类可读属性名称和文字的代码字符串。