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

时间:2015-06-16 22:03:14

标签: javascript obfuscation deobfuscation

所以我正在解密一个javascript代码,经过长时间的互联网搜索,我不知道如何快速解密这个问题。

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

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

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

然后在其余的代码中,它只是通过id。

调用数组中的字符串
_$_21e2[29]

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

1 个答案:

答案 0 :(得分:2)

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