1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Browsergame Bot allgemeine Fragen

Dieses Thema im Forum "Support & Discussion" wurde erstellt von Glorious, 12. Januar 2019.

  1. Glorious

    Glorious New Member

    Registriert seit:
    23. Dezember 2018
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Geschlecht:
    männlich
    Hallo,

    ich möchte bereits vorab sagen, dass ich sehr wenig Erfahrung habe und deshalb diesen Thread hier erstelle.
    Dazu habe ich erstmal allgemeine Fragen, aber auch sehr spezifische Fragen. (Die Fragen hebe ich extra im Text hervor)

    Momentan möchte ich ein Bot erstellen für ein Browsergame, welches vom Typ so ähnlich wie DarkOrbit ist.
    Dieses lässt sich im Browser spielen, aber auch als Desktop Version mit Adobe Air.

    Als große Frage stand immer ob es ein Pixelbot oder Packetbot werden sollte.
    Ein paar einfache Pixelbots habe ich mit AutoIt zum testen erstellt, aber die habe ich dann recht schnell aufgegeben, da sie nicht im Hintergrund laufen können und für jede Auflösung "neu" geschrieben werden müssen.
    Bisher hatte ich immer Probleme gehabt wie ich überhaupt mit einem Packetbot beginnen sollte, da man keine wirklichen Tutorials oder ähnliches im Internet findet. (meistens hieß es nur: man soll Packets sniffen, entschlüsseln und dann könnte man diese wieder senden) (was genau ist mit entschlüsseln gemeint, die gesendeten/erhaltenen Packete oder vielleicht sogar beides?)
    Doch dann habe ich ein Packetbot zu diesem Spiel in Python gefunden, dieses habe ich dann dekompiliert und jetzt ist mir einiges klar geworden (wenn so die übliche Vorgehensweise ist :D).
    Die Vorgehensweise die ich daraus sehen konnte:

    Es wird ein Socket zum Server erstellt, die erhaltene Antwort vom Server wird ständig gespeichert (in meinem Fall ist alles in JSON) und dann werden je nach Nutzung des Bots bestimmte Sachen aus dem erhaltenen Packet gefiltert und weiter genutzt.
    Dabei sieht zum Beispiel ein Packet der selben Aktion beim sniffen mit WPE Pro anders aus als ein Packet von Wireshark und die gesendeten Packete im Bot sehen wiederum auch anders aus.
    Macht das einen Unterschied, bzw. merkt das der Server? (bzgl. Erkennung von Bots) Die Aktion wird bei allen drei Versionen beim versenden normal ausgeführt.
    Code (Text):

    Beispielpacket:
    {"uri":"/rest/mainship/repair","sid":"sid","data":{"qid":"qid","method":"POST","data":{"premium":"false"}}}         // bestehender Bot (vielleicht veraltete Packetversion?)
    {"uri":"/rest/mainship/repair","data":{"method":"POST","qid":"qid","data":{"premium":"false"}},"sid":"sid"}         // Wireshark
    {"data":{"data":{"premium":"false"},"method":"POST","qid":"qid"},"sid":"sid","uri":"/rest/mainship/repair"}.        //vielleicht auch als Frage, falls sich einer dort auskennt, was bedeutet ein. bei WPE Pro? .. heißt meines Wissens \n
     
    Das Packet sendet ja immer Daten wo er sich die benötigte Daten herausholt. Ist es möglich durch ein Packet die URL der Daten herauszufinden?
    Als größte Frage die ich gerade auch versuche zu lösen, Java oder Python? :D

    Ich persönlich bin momentan am lernen von Java und würde deshalb das ganze in Java machen, allerdings habe ich nie mit Sockets gearbeitet und scheitere momentan daran den Python Socketteil in Java zu übersetzen. Vielleicht kann mir da jemand helfen:
    Code (Text):
    Python Code:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(IP, PORT)
    s.send(LOGIN)
    Code ende
    Diese zwei Sachen wären auch ganz nützlich, wie ich die verwenden kann in Java:
    s.recv()
    s.send()
     
    Da ich trotzdem noch nicht ganz ein Pixelbot ausschließen würde, hätte ich dazu auch noch eine Frage:
    - Einfacher wäre das ganze mit PixelSearch anstelle von ImageSearch, damit ein Pixelbot auch noch "effizient" bleibt, gibt es irgendwie die Möglichkeit die swf- und Imagedateien zu verändern? (Im Browser vielleicht schwer, aber vor allem hinsichtlich der Desktop Version die alle Daten davon Lokal speichert? Eher auch wie schwer es ist swf Dateien zu verändern in ein einzelnes Pixel, die Imagedateien sollten kein Problem sein)

    Ich bedanke mich bereits für eure Hilfe. :)

    Gruß Glorious
     
    Zuletzt bearbeitet: 12. Januar 2019
  2. gigagames

    gigagames Member

    Registriert seit:
    2. Juli 2017
    Beiträge:
    35
    Zustimmungen:
    13
    Punkte für Erfolge:
    8
    Guten tag,

    Zu deinen Fragen
    - was genau ist mit entschlüsseln gemeint, die gesendeten/erhaltenen Packete oder vielleicht sogar beides?
    Du musst meist beide entschlüsseln (wenn diese verschlüsselt sind, was nicht immer der fall ist.
    Denn wie du bereits festgestellt hast [qoute] und dann werden je nach Nutzung des Bots bestimmte Sachen aus dem erhaltenen Packet gefiltert und weiter genutzt.[/qoute] Wie willst du die sachen nutzen, wenn sie verschlüsselt sind?


    - Macht das einen Unterschied, bzw. merkt das der Server? (bzgl. Erkennung von Bots)
    Wenn du dir alle 3 Versionen anschaust sind die alle gleich, die "Parameter" & die "Daten" sind gleich, wo die stehen ist relativ egal.
    z.B.
    Name = Max
    Nachname = Mustermann
    ist das selbe wie
    Nachname = Mustermann
    Name = Max


    Schau dir dochmal die Tutorials an
    z.B. https://www.codebot.de/wiki/winhttp-einstieg-zu-clientlosen-browsergame-bots/


    Ob du Python| Java | c# | c++ nutzt ist ganz dir überlassen. Alle haben vor & nachteile es gibt kein null plus ultra
     
    krusty gefällt das.
  3. Glorious

    Glorious New Member

    Registriert seit:
    23. Dezember 2018
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Geschlecht:
    männlich
    Vielen Dank für deine Antwort, dann ist in meinem Falle nichts verschlüsselt.
    Das Tutorial werde ich später wenn ich mal Zeit habe anschauen, danke für den Link!
     
  4. Okan

    Okan New Member

    Registriert seit:
    4. Dezember 2018
    Beiträge:
    7
    Zustimmungen:
    1
    Punkte für Erfolge:
    3
    Eine Imagedatei hat erstmal viele Pixel. Du kannst natürlich genau einen Pixel aussuchen und dessen Farben speichern, entsprechend dann danach suchen lassen. (Gibts viele Tools dazu) Es ist aber dann fehleranfälliger.

    Ich habe mal bisschen in Java rein geschnuppert und bin auch nur Anfänger in Python, aber würde klar zu Python raten, da einfacher zu lernen.

    Wenn dein Game einen Client verwendet, dann könntest du auch versuchen Memory Reading anzuwenden. Das bedeutet, du liest alle Dinge, die es im Spiel gibt, vom Speicher des Programmes aus. Entsprechend hast du alle Daten und kannst so den Bot aufbauen.


    Schreib mir mal eine PN, ich bin wie gesagt auch noch Anfänger und möchte auch gerade Bots schreiben. Vielleicht kann man ja zusammenarbeiten und sich helfen :)!
     
    krusty gefällt das.

Diese Seite empfehlen

Die Seite wird geladen...