javascript - ¿Cómo restaurar nombres de propiedad ofuscados?
obfuscation deobfuscation (1)
Un
replace
simple de
expresiones regulares
hará:
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]);
});
Dado el
code
como una cadena, esto producirá una cadena de código con nombres de propiedad y literales legibles por humanos.
Así que estoy descifrando un código JavaScript, y después de mucho tiempo de buscar en Internet, no tengo idea de cómo descifrar esto de una manera rápida.
El código comienza con una gran matriz que contiene todas las cadenas de todo el script.
var _$_21e2 = ["jQuery", "userAgent", "test", "onmouseup", "onmousemove", "pink", "greenyellow", "gold"]
Hay más cadenas en la matriz, pero esto es solo un ejemplo.
Y luego, en el resto del código, solo llama a la cadena de la matriz, por id.
_$_21e2[29]
Sé que puedo hacer esto manualmente, pero hay alrededor de 120 cadenas, por lo que tomaría demasiado tiempo hacerlo. ¿Hay alguna manera de descifrar esto rápidamente? Gracias por adelantado.