Automatischer Download/Web Robot mit viel Java Script und Cookies

Ich schlage mich schon ein paar Tage damit rum das ich automatisiert vom Microsoft Marketplace die Download Statistik und Crashreports runterladen will.
Weil die leider keine Schnittstelle anbieten war meine Idee ein Miniprogramm zu schreiben was den Loginkram übernimmt und die Sachen runterlädt.
Leider hat die Loginseite von live.com (Sign in to your Microsoft account) schön viel Java Script drin welches direkt beim Abschicken noch einmal am Cookie rumspielt.

Was für eine Idee/Erfahrung habt ihr da wie man das auch noch in den Griff bekommen kann?
Die Lösung muss noch nicht einmal in Java sein, ich bin da für alles offen, ich will nur nicht immer die Zahlen von Hand runterladen müssen :wink:

Und das löst das/ein Problem aus? Was genau ist denn das Problem? Ich glaub das jetzt nicht, dass ich den Admin danach fragen musste… :wink:

mein Problem ist der Javascript Part der beim Abschicken noch einmal anspringt und am Cookie rumspielt (vielleicht noch wo anders, wovon ich nichts gemerkt hab)
zumal ich nicht ganz weiß ob es nicht noch andere Ecken gibt wo der JS Teil rumspielt

Mein Hoffnung ist das mir jemand nen guten Denkanstoß für den JS Part geben kann oder vielleicht weiß jemand ne völlig andere Lösung

Anderen Browser nehmen und dort Cookies sperren?

???
nix browser und ohne cookies geht nichts

Dann hab ich dein Problem gründlich missverstanden… :wink:

Ich weiß nicht, was du erwartest. Aber es ist doch so, dass niemand das Javascript kennt, außer dir.
Schau doch einfach mal durch, was genau im Script gemacht wird.
Was ist eigentlich schlimm daran, dass irgendetwas am Cookie gebastelt wird? Ich verstehe das Problem nicht. Wahrscheinlich, weil ich keine Ahnung habe…

Nicht, dass ich eine Lösung wüßte, nur um das Problem evtl. klarer zu machen: Es geht darum, diese Seite von Java aus “fernzusteuern” (speziell: Den Login auszuführen), aber das funktioniert nicht, weil das, was der Login bzw. das dabei zu startende JavaScript an Cookies rumpfuscht, und man das eben nicht durch ein einfaches HTTP POST etc. von Java aus “nachbauen” kann!?

[QUOTE=L-ectron-X]Ich weiß nicht, was du erwartest. Aber es ist doch so, dass niemand das Javascript kennt, außer dir.
Schau doch einfach mal durch, was genau im Script gemacht wird.
Was ist eigentlich schlimm daran, dass irgendetwas am Cookie gebastelt wird? Ich verstehe das Problem nicht. Wahrscheinlich, weil ich keine Ahnung habe…[/QUOTE]
Den JavaScript Teil kann sich jeder ansehen, oben im 1. Post ist die besagte Loginseite :wink:
Das Problem ist das durch dieses Cookiegewurschtele mein Programm sich nicht einloggen kann, weil da irgend etwas gemacht wird. Aber das sorgt dafür das ich keinen gültigen Loginversuch mache.

Genau das stimmt komplett so wie du es gesagt hast, ich hab noch nicht kapiert was das Java Script genau macht, bzw. ich weiß nicht ob es nur an dem Java Script Part liegt der beim Abschicken aufgerufen wird, vielleicht passiert noch viel mehr durch automatische Java Scripts die irgendwann irgendwo angesprochen werden.

Ich hab das mit Firebug/Dragonfly schon alles untersucht was die Seiten abschicken und so gut es geht nachgebaut, aber gerade diese ganzen Dinge die durch Variablen/Zufallswerte zur Laufzeit gefüllt werden machen einem das ganze recht schwer.

vielleicht kennt ja auch jemand nen „Browser“ den man einfach versteuern kann oder mir würde auch nen Linux Konsolen Script/Prog reichen das ich missbrauchen kann :wink:

Was genau wird am Cookie gebastelt, hast du das heraus bekommen?

es wird der Code ausgeführt

function WriteWLPerfOnSubmit() {
    function R() {
        var ca = document.cookie.split(";");
        for (var i = 0; i < ca.length; i++) {
            var c = ca**;
            while (c.charAt(0) == " ") {
                c = c.substring(1, c.length);
            }
            if (c.indexOf(k_sWLPerfCookieName) == 0) return c.substring(k_sWLPerfCookieName.length + 1, c.length);
        }
        return "";
    }
    function S() {
        this.toString = function () {
            var s = [];
            for (var key in this) {
                if (key != "toString") s.push(key + "=" + this[key], "&");
            }
            if (s.length > 0) s.pop();
            return s.join("");
        };
        var v = R();
        var pa = v.split("&");
        for (var i = 0; i < pa.length; i++) {
            var kv = pa**.split("=");
            this[kv[0]] = kv[1];
        }
    }
    var subs = new S();
    subs["FR"] = "L";
    subs["ST"] = new Date().getTime();
    var domain = GetCookieDomain(true, true);
    WriteCookieToDomain(k_sWLPerfCookieName, subs.toString(), true, domain);
    return true;
}```
aber ich hab heute gesehen, das vorher noch einmal paar Felder ins HTML eingefügt werden können (je nach Vorbedigung), mit denen dann wieder paar andere Felder ausgefüllt werden

Ich hab mir gerade den Spaß gemacht und mit C# ein Programm gebaut, was einfach die Webseite im Browser auf macht und über einen extra Button rufe ich das Absenden des Formulars auf (und damit auch den JS Part) das funktioniert. Nur funktioniert das leider nicht auf ner Konsole