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

Python - Fragen über Coding eines Bottes...

Dieses Thema im Forum "Support & Discussion" wurde erstellt von Okan, 4. Dezember 2018.

  1. Okan

    Okan New Member

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

    entschuldigt den doch sehr allgemeinen Titel, aber ich stehe relativ am Anfang und habe daher eine Menge Fragen, in welche Richtung ich am besten gehen sollte und wie ich das dann beschäftige.

    Also Ich code nun ein paar Wochen mit Python, habe soweit die ganzen Basics drauf. Ich möchte mich hauptsächlich aufs Coden von Bots für Browsergames fokussieren. Ich mache das als Hobby, von daher gehts mir nicht darum, dass so schnell wie möglich zu lernen.

    Ich frage mich nun, wie und worin soll ich mich am besten einlesen und anfangen zu coden? Ich habe zunächst mal mit ganz einfachen Pixelbots angefangen(Modul: PyAutoGui). Sprich Template Search, MouseEvents etc. Das funktioniert schon ganz ok, ist aber natürlich sehr fehleranfällig wenn man sich auf Pixelfarbe verlässt(das Game wofür ich den Pixelbot gecoded hab, hat bspw. die Bild Perspektive immer minimal über die Zeit verändert -> Nix funktioniert mehr, wie es soll). Am liebsten würde ich die Bots natürlich auch gratis anbieten für die Communities, und da ist es hinsichtlich Auflösung etc. sehr umpraktikabel auf Pixelbots zu setzen. Leider konnte ich auch kein Modul finden für Mac, dass mir ermöglicht, Mouseevents im Hintergrund auszuführen(Kennt ihr da was?). Aber das wisst ihr ja alles selbst besser als ich...

    So nun frage ich mich, was ich stattdessen machen soll. Ich weiß, dass es noch Packetbots gibt, die dann per Packets mit den Gameservern interagieren und eben Aktion vom Spieler simulieren ohne den Client überhaupt zu starten. Allerdings habe ich da dann schon sehr viel negatives Feedback bekommen, dass die allermeisten Browsergames eben ihre Packets verschlüsseln(und Entschlüsselung sehr sehr schwierig ist) und mit einem Update alles modifizieren(-> Bot unbrauchbar). Mal ganz zu schweigen, dass ich ja noch Anfänger bin. Aber kann ja ein Langzeit Projekt werden, falls ich mich dahingehend entwickeln soll.

    Sonst habe ich noch von Injection, Reflection gehört, also Methoden, mit der man den GameClient selbst lädt und ausliest(und entsprechend Informationen von alleemöglichen erhält) bzw. Dinge einschleust.(Memory Bot?)

    Also, ich freue mich da ein paar Ratschläge von euch zu erhalten, da ich wirklich nicht so recht weiß, wo ich loslegen sollte. Verbessert mich natürlich auch, falls ich da was falsch sehe.

    Danke!
     
  2. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    63
    Zustimmungen:
    28
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Wadiya
    Hallo Okan und herzliche willkommen in unserem kleinen Forum.

    Python ist generell eine schöne Sprache, um Browsergame-Bots zu schreiben. Es gibt mehrere Module, die es erlauben entweder selbst Http/Https Pakete zu versenden, oder einen Browser fernzusteuern.
    Generell: wenn du Browsergame Bots schreiben willst, solltest du zunächst einigermaßen HTML und Javascript lernen, denn (fast) nur das versteht der Browser.
    Dann kommt es natürlich darauf an, für welches Spiel du den Bot schreiben möchtest.
    Einige Spiele verwenden einfache Http/s Requests, die man leicht analysieren und nachbilden kann.
    Andere verwenden verschlüsselte Javascript Sockets für die Kommunikation, was wiederum schwieriger zu analysieren ist.

    Wenn du Memory-Editing ansprichst, so ist dies begrenzt in Python möglich. Python ist eine Skript-Sprache, welche (in der Regel) nicht in nativen Code, sondern in einen sogenannte Byte-Code kompiliert wird. Solchen nativen Code braucht man jedoch, wenn man eine sogenannte DLL- oder Code-Injection machen möchte.
    Injections werden verwendet, um Funktionen in Spielen zu patchen oder um Maleware zu entwickeln und gehören schon eher zu den fortgeschritteneren Techniken des Gamehackings. Hierfür ist ein genaues Verständnis des Speicher- und Programmaufbaus erforderlich, sowie meist Kenntnisse in Assembler und maschinennahen Sprachen wie C/C++.
    Simples Memory-Editing/Hacking/Patching (an eine bestimmte Speicheradresse in einem Prozess schreiben) ist in Python jedoch möglich.

    Kommen wir zu Pixel-Search/Template-Search. Wie du bereits gemerkt hast, sind die Methoden sehr fehleranfällig.
    Die Suchfunktionen haben meist einen Schwellwert als Parameter, der regelt, "wie ähnlich" sich zwei Bilder sehen müssen, damit ein Match erkannt wird. Du musst den Bot natürlich so programmieren, dass er nicht auf einen einzelnen Pixel oder ein einzelnes Bild angewiesen ist.

    Die Sprache Python erfreut sich in jüngster Zeit großer Beliebtheit. Im Bereich Browsergame Bots kannst du damit auch eine Menge anfangen.
    Pixelsearch/Templatesearch würde ich an deiner Stelle eher weniger verwenden.
    Injections o.ä. sind für Python nicht geeignet.

    Wo kannst du nun anfangen?
    Nun, vlt versuchst du dich mal per Python-Skript hier auf codebot.de anzumelden. Dafür könntest du https://docs.python.org/3/library/urllib.html#module-urllib oder https://selenium-python.readthedocs.io/ oder http://docs.python-requests.org/en/master/ verwenden.
    Dann kommt es sehr stark darauf an, für welches Spiel du einen Bot schreiben möchtest. Ich empfehle dir erst mal ein einfaches Spiel zu verwenden, ohne viel Javascript oder Flash o.ä.

    Generell ist noch zu sagen, dass es nicht "den Bot" oder "den Hack" gibt, unterscheidet sich alles durch das gewählte Spiel, die gewählte Sprache und den gewählten Ansatz.

    Ich hoffe ich konnte dir ein wenig weiterhelfen.
    Immer her mit deinen Fragen :)
    Liebe Grüße Krusty
     
    Zuletzt bearbeitet: 6. Dezember 2018 um 01:23 Uhr
    SilverHazard und Okan gefällt das.
  3. Okan

    Okan New Member

    Registriert seit:
    4. Dezember 2018
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Vielen Dank für diese hilfreiche und ausführliche Antwort :)! Sieht man ja selten im Coding Bereich...

    Ich hab mich mal an deinem Ratschlag orientiert und versuche mal per Requests einen automatisierten Login zu coden. Hab mich auch schon in die Module etwas eingelesen und gucke gerade, wie man das am besten so macht. Aber ich merke schon, dass man wohl paar HTML Basics haben sollte, um da ganz durchzublicken. Bevor ich jetzt Fragen stelle, versuche ich mich mal paar Tage noch allein dran und hoffe ich kriege das soweit hin und der Einstieg gelingt.

    Weil die Frage nach den Spielen aufkam, für die ich was schreiben will: Runescape(bietet auch einen Client an) und Darkorbit(nur im Browser spielbar) hatte ich so im Auge. Beide Spiele sind wohl echt gut gesichert gegen Bots. Bei DO gibts noch paar Leute, die Packetbots mit erheblichem Aufwand herstellen, die machen das dann aber auch für den Profit und bei RS sind Packetbots bereits seit Jahren Geschichte, weil dort auch die Packet massiv verschlüsselt wurden. Da setzen alle Bots auf Injektion und Reflection(/Introspection)(das ist laut Recherche auf gut mit Python möglich).
     

Diese Seite empfehlen

Die Seite wird geladen...