iks-deh
Lt. Commander
- Registriert
- Jan. 2011
- Beiträge
- 1.325
Hi,
ich suche einen Weg, "gepackten" (obfuscated) JavaScript-Code wieder in den Ursprungs-Zustand umzuwandeln. Zum "Packen" wurde das Skript von dieser Seite verwendet: http://dean.edwards.name/packer/ .
Hier mal ein Beispiel wie es in meinem Fall aussieht.
Aus:
wird dann
Ich möchte nun den Inhalt eines Skripts (wird dynamisch erzeugt, muss es also ständig neu machen) in einer Android-App auslesen. Leider bekomme ich zwar den verpackten Code (2. Variante) in die Finger (Parse mir das HTML-Dokument), schaffe es aber nicht, daraus wieder den ersten herzustellen. Ich habe zwar Dienste (u.a. http://jsbeautifier.org/) samt Code gefunden, die mir das "entpacken" übernehmen, allerdings ist das alles entweder JavaScript oder Python-Code, mit dem ich unter Java nix anfangen kann. Da wird dann mal eval(...) von irgendwelchem geparsten Code aufgerufen und als JavaScript-Anfänger hab ich dann keinen Plan mehr was da gerade passiert. "Übersetzen" in Java für mich deshalb unmöglich.
Habe auch schon versucht, den JavaScript-Code über die Java-Scripting-API auszuführen, hat allerdings nicht geklappt. Auch über längeres googlen hab ich nix gefunden was mich weiter bringt.
Und nein, ich will nicht per Reverse-Engineering super geheimen Code klauen, sondern wie oben im Beispiel einfach nur an die URLs kommen, welche sowieso per Klick erreichbar sind. Warum die so versteckt sind weiß ich auch nicht wirklich...
ich suche einen Weg, "gepackten" (obfuscated) JavaScript-Code wieder in den Ursprungs-Zustand umzuwandeln. Zum "Packen" wurde das Skript von dieser Seite verwendet: http://dean.edwards.name/packer/ .
Hier mal ein Beispiel wie es in meinem Fall aussieht.
Aus:
Code:
createUrl('images');
var x = new Array();
x["b8e197d850f82ddb6627"] = 'uL7TStnPqVFqpC4NGMyDExOJ5s%2B%2F%2BnMp:7853';
x["f67e35dbbcd5ea003c10"] = 'Xy0UqM%2Fex71D0AwS7y25L8sW%2BifUbtNl:8695';
$('a.thumb').mousedown(function (e) {
e.preventDefault();
var rel = x[$(this).attr("rel")].split(':');
$(this).attr('href', 'g/' + rel[1] + '/' + rel[0]);
return false
});
wird dann
Code:
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};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}('k(\'j\');3 2=o q();2["r"]=\'7%8%9%b:c\';2["d"]=\'f%h%i:6\';$(\'a.l\').m(n(e){e.p();3 a=2[$(4).5("s")].t(\':\');$(4).5(\'u\',\'g/\'+a[1]+\'/\'+a[0]);v w});',33,33,'||x|var|this|attr|8695|uL7TStnPqVFqpC4NGMyDExOJ5s|2B|2F||2BnMp|7853|f67e35dbbcd5ea003c10||Xy0UqM||2Fex71D0AwS7y25L8sW|2BifUbtNl|imageGrid|gridSolve|thumb|mousedown|function|new|preventDefault|Array|b8e197d850f82ddb6627|rel|split|href|return|false'.split('|'),0,{}))
Ich möchte nun den Inhalt eines Skripts (wird dynamisch erzeugt, muss es also ständig neu machen) in einer Android-App auslesen. Leider bekomme ich zwar den verpackten Code (2. Variante) in die Finger (Parse mir das HTML-Dokument), schaffe es aber nicht, daraus wieder den ersten herzustellen. Ich habe zwar Dienste (u.a. http://jsbeautifier.org/) samt Code gefunden, die mir das "entpacken" übernehmen, allerdings ist das alles entweder JavaScript oder Python-Code, mit dem ich unter Java nix anfangen kann. Da wird dann mal eval(...) von irgendwelchem geparsten Code aufgerufen und als JavaScript-Anfänger hab ich dann keinen Plan mehr was da gerade passiert. "Übersetzen" in Java für mich deshalb unmöglich.
Habe auch schon versucht, den JavaScript-Code über die Java-Scripting-API auszuführen, hat allerdings nicht geklappt. Auch über längeres googlen hab ich nix gefunden was mich weiter bringt.
Und nein, ich will nicht per Reverse-Engineering super geheimen Code klauen, sondern wie oben im Beispiel einfach nur an die URLs kommen, welche sowieso per Klick erreichbar sind. Warum die so versteckt sind weiß ich auch nicht wirklich...
Zuletzt bearbeitet: