2015-06-16 55 views
1

所以我解密一個javascript代碼,並且經過很長時間的在互聯網上查找我不知道如何解密這個快速的方法。如何恢復混淆的屬性名稱?

代碼從包含整個腳本的所有字符串的大數組開始。

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

數組中有更多的字符串,但這只是一個例子。

然後在其餘的代碼中,它只是通過id調用數組中的字符串。

_$_21e2[29] 

我知道我可以做到這一點手動,但也有大約120個字符串,這樣它會佔用太多的時間來做到這一點。 有沒有辦法快速解密呢?提前致謝。

+0

對代碼真的很抱歉,它們是爲了像代碼,但我是新來的StackOverflow,請不要介意 –

+1

修正它。所有你需要的是每個代碼塊和前一段落之間的另一行:)。 – Jashaszun

+4

爲什麼你需要去混淆這個? – Sampson

回答

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爲一個字符串,這將產生一個代碼串人類可讀的屬性名稱和文字。

+0

非常感謝,但我會如何使用它? –

+1

正如我所說的,將腳本作爲'code'變量中的字符串。 – Bergi

+0

@BertJanssen請參閱http://jsfiddle.net/v4g11pfh/ – Sampson