Seltsame JavaScript-Funktion

xActionx

Software-Overclocker(in)
Hey Leute,

kann mir einer sagen was das ist:

Code:
var _0x6a7e=["/backend.php?a=s&l=8","parse","result","val","#pw","get","ready"];$(document)[_0x6a7e[6]](function(){$[_0x6a7e[5]](_0x6a7e[0],function(_0xa388x1){var _0xa388x2=JSON[_0x6a7e[1]](_0xa388x1);$(_0x6a7e[4])[_0x6a7e[3]](_0xa388x2[_0x6a7e[2]]);})});

bin darauf bei einem hackit gestoßen und kann mir keinen Reim drauf machen.

In der JavaScript-Konsole kommt folgendes raus:

Object { 0: HTMLDocument → 8, context: HTMLDocument → 8, length: 1 }

Vielen Dank schonmal

MFG
 
$(document)
Das is doch scho wieder dieser jQuerry Mist oder? Würde also drauf tippen, dass es mit JS selbst nicht allzuviel zu tun hat.
 
Könnte auch ein versteckter Exploit sein.
Nein, kann es nicht sein.

Die konkreten Speicheradressen sind schon etwas merkwürdig.
Das sind lediglich Variablennamen, keine Speicheradressen.

$(document)
Das is doch scho wieder dieser jQuerry Mist oder?
Ja, im vorliegenden Code wird jQuery verwendet. Ist "Mist" deine Umschreibung für Dinge, die du nicht verstehst?

Würde also drauf tippen, dass es mit JS selbst nicht allzuviel zu tun hat.
jQuery hat naturgemäß immer einiges mit JavaScript zu tun. Diese Aussage von dir beantwortet allerdings gewisser Maßen meine Frage von oben.

Deshalb frage ich. Kein Plan von dem Zeug...

Bei dem Code wurde mit ziemlich einfach Mitteln versucht die Lesbarkeit zu verringern. Du kannst das Ganze auch folgerndermaßen schreiben. Ich denke, jetzt solltest du etwas klarer sehen. Falls du es noch immer nicht nachvollziehen kannst, kann ich das Snippet auch gerne genauer erklären. Ich wollte an dieser Stelle nur nicht mehr spoilern als nötig.

Code:
$(document).ready(function() {
    $get("/backend.php?a=s&l=8", function(responseText) {
        var responseObject = JSON.parse(responseText);
        $("#pw").val(responseObject.result);
    })
});

https://api.jquery.com/ready/
https://api.jquery.com/jquery.get/
https://api.jquery.com/val/
 
Bei dem Code wurde mit ziemlich einfach Mitteln versucht die Lesbarkeit zu verringern. Du kannst das Ganze auch folgerndermaßen schreiben. Ich denke, jetzt solltest du etwas klarer sehen. Falls du es noch immer nicht nachvollziehen kannst, kann ich das Snippet auch gerne genauer erklären. Ich wollte an dieser Stelle nur nicht mehr spoilern als nötig.

Code:
$(document).ready(function() {
    $get("/backend.php?a=s&l=8", function(responseText) {
        var responseObject = JSON.parse(responseText);
        $("#pw").val(responseObject.result);
    })
});
Das habe ich mir fast schon gedacht und ich habe echt kein Plan von dem Zeugs (ich meide Webprogrammierung wie die Pest :D)
 
"Mist" weil es mMn einfach nur ... missbraucht wird, oder wie mans ausdrücken mag. jQuerry ist für mich eine Bibliothek an Funktionen die einem das Leben mit JS einfacher machen soll. Also dass ich meinetwegen ein kleinerers Problem statt in 15 Zeilen Code mit einem Funktionsaufruf von jQuerry löse. In dem Falle hätte jQuerry also diese "15 Zeilen" in einer eigenen Funktion zusammen gebaut. Da dies dann meistens in einer sehr effizienten Weise geschieht, ist sowas ja nicht verkehrt. Sprich: Die jQuerry-Variante/Umsetzung meines 15-Zeilen Problems läuft warscheinlich sehr viel performanter.

Aber such mal im Netz nach Javascript Funktionen, Erklärungen usw. Du findest so oft einfach völlig unnütze jQuerry vorschläge, das is zum heulen >< jQuerry ist für mich etwas um auf einfache Weise komplexe Probleme zu lösen. Tatsächlich wird aber jedes Kinkerlitzen über jQ gemacht wies scheint. Ich find das halt völlig daneben. Für so einen Kleinkram der ohne irgendwelche Probleme mit Plain-JS geht bind ich doch ned jQuerry ein >< Aber viele tun das - und das ist schlicht Mist.
 
Dazu solltest du aber auch bedenken, warum JQuery für nahezu fast alles genutzt wird. JQuery ermöglicht, wie dir ja bekannt sein dürfte, eine unfassbarschnelle Zugriffsmöglichkeit auf alle Objekte des DOM's und hat zudem eine vereinfachung von Ajax am Bord. Für wirklich kleine Sachen muss es nicht sein. Aber gerade bei größeren Projekten wie RIA ist JQuery bzw. JQuery-UI oder W2UI nicht mehr wegzudenken.
 
Wie gesagt, jQuerry an sich stell ich auch weniger in Frage. Nur wie es immer und überall bei den kleinsten Anwendungen angebracht wird. Da fängt einer mit JS an und fragt was ganz ganz simples -> jQuerry :ugly: DAS ist ganz großer Mist. Ich hatte hier letztens auch nen kleines Spaßprojekt und mich dabei auch bissl in diese HTML5 Canvas Geschichte eingelesen und da kam das ausschließlich vor. Also nicht "ab und an" sondern "immer".

Aber ich denke, das wird OT hier ;)
 
Bei dem Code wurde mit ziemlich einfach Mitteln versucht die Lesbarkeit zu verringern. Du kannst das Ganze auch folgerndermaßen schreiben. Ich denke, jetzt solltest du etwas klarer sehen. Falls du es noch immer nicht nachvollziehen kannst, kann ich das Snippet auch gerne genauer erklären. Ich wollte an dieser Stelle nur nicht mehr spoilern als nötig.

Code:
$(document).ready(function() {
    $get("/backend.php?a=s&l=8", function(responseText) {
        var responseObject = JSON.parse(responseText);
        $("#pw").val(responseObject.result);
    })
});

https://api.jquery.com/ready/
https://api.jquery.com/jquery.get/
https://api.jquery.com/val/

Top :daumen: danke. Sowas hab ich gesucht.

Hab mir schon gedacht, dass das ganze in Richtung Verschleierung etc. geht. Hab das ganze früher manchmal mit Perl-Obfuscation gemacht.

Eine Frage hab ich allerdings noch. Wie hast du das ganze übersetzt? Von Hand oder mit einem Programm?

MFG
 
Bei einem so kleinen Code-Snippet kann man es Problemlos per Hand machen. In dem Fall habe ich zuerst mit Online JavaScript beautifier für eine brauchbare Formatierung gesorgt und anschließend manuell die Funktionsnamen aus dem Array am Anfang an den entsprechenden Stellen direkt eingesetzt. Am Schluss nur noch den paar übrig gebliebenen Variablen einen sinnvolleren Namen gegeben.
 
Zurück