Más de lo mismo :-) Aunque ahora el código Javascript está ofuscado con un empaquetador (packer). Basta con abrir el level2.js y analizar la primera línea: eval(function(p,a,c,k,e,r){e=function(c){return(c<a?”:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}(’C D(){f a=q.t(\’u\’).w;f r=z A(8);f x="";B(f i=0;i<r.g;i++){r[i]=z A()}c(a.g==8){c(a.b(5)=="n"){r[7]=["l","j","k","j","9","1","l","m"];c(a.b(4)=="0"){r[2]=["x","d","e","j"];c(a.b(0)=="3"){r[8]=["s","s","3","j","o","E","k"];c(a.b(3)=="y"){r[6]=["7","5","k","j","n","v","k"];r[0]=["l","j","k","j"];c(a.b(1)=="4"){r[3]=["l","j","4","j"];r[1]=["l","j","k","j"];c(a.b(2)=="s"){r[5]=["l","j","k","j","h","o","p"];c(a.b(6)=="3"){r[4]=["l","j","k","j","2","8","h"];B(f j=0;j<r[7].g;j++){x=x+r[j][j]}c(x.F("e","3")==r[7][0]+r[2][3]+a.b(6)+r[5][3]+"2"+r[8][4]+r[1][2]+r[7][7]){q.t(\’u\’).w=a.b(0)+a.b(1)+a.b(2)+a.b(3)+a.b(4)+a.b(5)+a.b(6);G()}}}}}}}}}}’,43,43,’|||||||||||charAt|if|||var|length||||||||||document|||getElementById|password||value|||new|Array|for|function|check|S|replace|Login’.split(’|'),0,{})) Busando packers de Javascript en Google, llegamos a éste (usando “eval(function(p,a,c,k,e,r)” como cadena de búsqueda). Desempaquetamos y [...]