18-05-2016, 06:19 PM
Hace casi 2 años os puse un par de herramienta que ayudan a la tarea de desofuscar código JavaScript.
http://foroblackhat.com/hilo-desofuscar-...zyTtHWLTCJ
Tengo que decir que a día de hoy, se encuentran cada vez más códigos javascript que se vuelve una tarea complicada la desofuscación. Han evolucionado mucho el mundo de la ofuscación de JavaScript, de manera que ya se hace irrenocible, os voy a dejar los 2 pasos que sigo yo para dejar un código javascript bien ofuscado y gratis
Os pongo un ejemplo que vais a ir viendo como se va ofuscando:
Ahora lo voy a pasar por la primera herramienta que es:
http://www.danstools.com/javascript-obfuscate/index.php
El código que me devuelve ofuscado es:
Este código es super facil recuperar al original simplemente usando jsbeautifier.org nos lo devuelve, probarlo
Y la segunda herramienta que uso como entrada el código resultante de la primera,
https://javascriptobfuscator.com/Javascr...cator.aspx
el código queda:
Ya sólo con ver ese código quita las ganas de tratar de desofucar . Se puede securizar aún más y seguramente haya desofuscadores más potentes que puedas lograr algo, pero ya con estas dos herramientas podemos asegurar nuestros códigos javascript
http://foroblackhat.com/hilo-desofuscar-...zyTtHWLTCJ
Tengo que decir que a día de hoy, se encuentran cada vez más códigos javascript que se vuelve una tarea complicada la desofuscación. Han evolucionado mucho el mundo de la ofuscación de JavaScript, de manera que ya se hace irrenocible, os voy a dejar los 2 pasos que sigo yo para dejar un código javascript bien ofuscado y gratis
Os pongo un ejemplo que vais a ir viendo como se va ofuscando:
Código:
function hola(msg)
{
alert(msg);
}
hola("Bienvenido a ForoBlackhat");
Ahora lo voy a pasar por la primera herramienta que es:
http://www.danstools.com/javascript-obfuscate/index.php
El código que me devuelve ofuscado es:
Código:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('2 1(0){3(0)}1("6 4 5");',7,7,'msg|hola|function|alert|a|ForoBlackhat|Bienvenido'.split('|'),0,{}))
Este código es super facil recuperar al original simplemente usando jsbeautifier.org nos lo devuelve, probarlo
Y la segunda herramienta que uso como entrada el código resultante de la primera,
https://javascriptobfuscator.com/Javascr...cator.aspx
el código queda:
Código:
var _0xd4d7=["\x32\x20\x31\x28\x30\x29\x7B\x33\x28\x30\x29\x7D\x31\x28\x22\x36\x20\x34\x20\x35\x22\x29\x3B","\x7C","\x73\x70\x6C\x69\x74","\x6D\x73\x67\x7C\x68\x6F\x6C\x61\x7C\x66\x75\x6E\x63\x74\x69\x6F\x6E\x7C\x61\x6C\x65\x72\x74\x7C\x61\x7C\x46\x6F\x72\x6F\x42\x6C\x61\x63\x6B\x68\x61\x74\x7C\x42\x69\x65\x6E\x76\x65\x6E\x69\x64\x6F","\x72\x65\x70\x6C\x61\x63\x65","","\x5C\x77\x2B","\x5C\x62","\x67"];eval(function(_0xfb97x1,_0xfb97x2,_0xfb97x3,_0xfb97x4,_0xfb97x5,_0xfb97x6){_0xfb97x5=function(_0xfb97x3){return _0xfb97x3};if(!_0xd4d7[5][_0xd4d7[4]](/^/,String)){while(_0xfb97x3--){_0xfb97x6[_0xfb97x3]=_0xfb97x4[_0xfb97x3]||_0xfb97x3};_0xfb97x4=[function(_0xfb97x5){return _0xfb97x6[_0xfb97x5]}];_0xfb97x5=function(){return _0xd4d7[6]};_0xfb97x3=1};while(_0xfb97x3--){if(_0xfb97x4[_0xfb97x3]){_0xfb97x1=_0xfb97x1[_0xd4d7[4]]( new RegExp(_0xd4d7[7]+_0xfb97x5(_0xfb97x3)+_0xd4d7[7],_0xd4d7[8]),_0xfb97x4[_0xfb97x3])}};return _0xfb97x1}(_0xd4d7[0],7,7,_0xd4d7[3][_0xd4d7[2]](_0xd4d7[1]),0,{}))
Ya sólo con ver ese código quita las ganas de tratar de desofucar . Se puede securizar aún más y seguramente haya desofuscadores más potentes que puedas lograr algo, pero ya con estas dos herramientas podemos asegurar nuestros códigos javascript