Javascript Verschlüsselung/Komprimierung
Selfhtmller
- javascript
0 Griever2 Cheatah0 thebach0 Selfhtmller
Hallo zusammen.
Ich habe auf:
http://www.dezinerfolio.com/2007/07/19/simple-javascript-accordions
bzw direktlink:
http://www.dezinerfolio.com/wp-content/uploads/accordemo/01.html
ein JS gefunden, was zumindest für mich, unleserlich wirkt.
Ist das eine Art verschlüsselung oder komprimierung?
Ich habe im anschluss direkt im netz nach verschiedenen methoden gesucht, und jeweils nur die js "cruncher" entdeckt, die ja nur die dichte der js verändern.
Mich würde brennend interressieren wie der jeweilige Browser trotz "verschlüsselung/komprimierung" das Script lesen kann, um was es sich für eine methode handelt, und ob sie (muss ja irgendwie) "rückgängig machbar" ist.
MfG
Hallo zusammen.
Ich habe auf:
http://www.dezinerfolio.com/2007/07/19/simple-javascript-accordions
bzw direktlink:
http://www.dezinerfolio.com/wp-content/uploads/accordemo/01.htmlein JS gefunden, was zumindest für mich, unleserlich wirkt.
Ist das eine Art verschlüsselung oder komprimierung?Ich habe im anschluss direkt im netz nach verschiedenen methoden gesucht, und jeweils nur die js "cruncher" entdeckt, die ja nur die dichte der js verändern.
Mich würde brennend interressieren wie der jeweilige Browser trotz "verschlüsselung/komprimierung" das Script lesen kann, um was es sich für eine methode handelt, und ob sie (muss ja irgendwie) "rückgängig machbar" ist.
MfG
Das besagte Script wurde Obfuscated. Das heißt, dass es so umgewandelt, verschachtelt und Verschleiert wurde, dass ein Programm zwar noch locker damit klar kommt, aber ein eventueller Script-Dieb dies erst "entwirren" müsste, um es zu verstehen.
Nur selbst ich verstehe noch nicht ganz, wie soetwas wie das wirklich funktionieren kann. Bei dieser Version scheint der Text sogar Binör manipuliert zu sein.
Würde mich also auch mal brennend interressieren, wieso das überhaupt funktioniert.
Hi,
Nur selbst ich verstehe noch nicht ganz, wie soetwas wie das wirklich funktionieren kann. Bei dieser Version scheint der Text sogar Binör manipuliert zu sein.
innerhalb von Strings.
Würde mich also auch mal brennend interressieren, wieso das überhaupt funktioniert.
Die rechnen damit, dass niemand durch das Code-Chaos soweit durchsteigt, um das "eval" durch "alert" zu ersetzen und die Datei anschließend dank der wüsten Sonderzeichen noch speichern zu können. Der Code lautet:
function $(d){return document.getElementById(d)}function g(d,v){if(v==undefined){if(d.style.display!="none"&&d.style.display!=""){return d.offsetHeight}o=d.style.display;d.style.display="block";v=parseInt(d.offsetHeight);d.style.display=o;return v}else{d.style.height=v+"px"}}function of(d,v){g(d,v);v=v/d.h;d.style.opacity=v;d.style.filter="alpha(opacity="+v*100+")"}function b(d){d=$(d);z=g(d);x=d.h;if(z>0){v=Math.round(z/d.s);v=(v<1)?z-1:z-v;of(d,v)}else{g(d,0);d.style.display="none";clearInterval(d.t)}}function e(d){d=$(d);z=g(d);x=d.h;d.style.display="block";if(z<x){v=Math.round((x-z)/d.s);v=(v<1)?z+1:v+z;of(d,v)}else{g(d,x);clearInterval(d.t)}}function Accordian(d,s,f){l=$(d).getElementsByTagName("div");a=[];for(i=0;i<l.length;i++){d=l[i];if(d.id.substr(d.id.indexOf("-"),d.id.length)=="-content"){a.push(d)}}x=null;for(i=0;i<l.length;i++){(function(h){c=h.id.substr(0,h.id.indexOf("-"));if(c+"-header"==h.id){c=$(c+"-content");c.style.display="none";c.style.overflow="hidden";c.h=g(c);c.s=(s==undefined)?7:s;h.f=f;h.c=a;if(h.className.match(new RegExp(f+"+"))){x=h}h.onclick=function(){for(j=0;j<this.c.length;j++){n=this.c[j].id;n=n.substr(0,n.indexOf("-"));d=$(n+"-header");n=$(n+"-content");s=d.className.split(new RegExp("\s+"));for(p=0;p<s.length;p++){if(s[p]==""+d.f){s.splice(p,1);d.className=s.join(" ");break}}clearInterval(n.t);if(d.id==this.id){if(n.style.display=="none"){g(n,0);n.t=setInterval('e("'+n.id+'")',9)}d.className+=" "+d.f}else{if(n.style.display=="block"){n.t=setInterval('b("'+n.id+'")',9)}}}}}})(l[i])}if(x!=null){x.onclick()}}
Was auch noch schlimm genug ist.
Cheatah
Was auch noch schlimm genug ist.
Das ganze kann man ja noch durch einen Javascript beautifier jagen...
Gruss
Interessante Sache..
Unter
http://www.javascriptobfuscator.com/
gibts den Obfuscator/Cruncher und unter
http://jsbeautifier.org/
findet man auch das passende Gegenstück.
Aber ich finde nirgend einen cruncher/obfuscator der Strings in Bytes darstellt / ausgibt. Wie wurde das bewerkstelligt?
Kommt es mir nur so vor, oder werden die Scripts die "gecruncht" wurden wirklich ein wenig schneller ausgeführt als vorher?
Kann das vlt (mal abgesehen von der Prozessorgeschwindigkeit, da JS ja Clientbasiert abläuft) auch daran liegen, weil die "obfuscated" Scripts komplett per eval in den Speicher geladen und dadurch schneller abgearbeitet werden? Oder liege ich da gerade komplett im Argen..
MfG