Browsergame Bot - Funktionsweise

Hallo zusammen,
mich interessiert schon länger wie Bots überhaupt funktionieren. Zum Beispiel für irgendwelche PC-Spiele wie Fifa. Doch zuerst einmal will ich wissen, wie ein Bot für Browsergames, wie Spiel das Leben, Die Stämme, etc., funktioniert. Habe mich durch googlen schon etwas informiert:
Man muss zuerst gucken, was das Spiel beim "spielen" an den Server schickt. Also was an den Server geschickt wird, wenn man z.B. Erdbeeren kauft. Dies konnte ich schon mit Hilfe von Tamper Data manipulieren (jedoch nur die Anzahl der Erdbeeren) und die komplette URL auslesen. Es sind ja nur einfache Parameter, die man herrausfinden muss.
Damit wäre das automatische Einkaufen ja kein Problem mehr.

Was ist aber, wenn man den aktuellen Kontostand, also das verfügbare Geld, auslesen will, um dann kalkulieren zu können, was alles eingekauft werden kann. Dies wird doch wahrscheinlich bei jedem Neuaufruf der Seite vom Server gesendet. Wie fange ich diese Daten ab?
Wäre es sogar möglich, verschiedene Werte, wie Geld, direkt zu verändern? Der Client sendet ja dem Server nur informationen wie "Spieler arbeitet in der Mühle". Also keine konkreten Werte, die man dann verändern könnte.

Hoffe, dass ich viele hilfreiche Informationen von euch bekomme!

Viele Grüße,
Littleben
 
Was ist aber, wenn man den aktuellen Kontostand, also das verfügbare Geld, auslesen will, um dann kalkulieren zu können, was alles eingekauft werden kann. Dies wird doch wahrscheinlich bei jedem Neuaufruf der Seite vom Server gesendet. Wie fange ich diese Daten ab?
Du holst dir die URL und parst sie. Sollte das Browsergame valides XHTML verwenden (sehr sehr sehr unwahrscheinlich), kannst du es mit einem XML-Parser auseinandernehmen und recht einfach an Dinge wie einen Kontostand gelangen. Ansonsten helfen einen auch Regexe bei invalidem HTML
Wäre es sogar möglich, verschiedene Werte, wie Geld, direkt zu verändern? Der Client sendet ja dem Server nur informationen wie "Spieler arbeitet in der Mühle". Also keine konkreten Werte, die man dann verändern könnte.
Sowas wie der Kontostand wird ja in der DB des Servers gespeichert, der auch deine Daten auf Plausibilität prüft. Nein, du kannst nicht einfach so deinen Kontostand ändern ;)
 
Wie erkennt man denn, dass das Browsergame valides XHTML verwendet?
Habe mich testweise auf Spiel das Leben angemeldet und durch Tamper Data diese Information gefunden
Code:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Scheint das wohl zu sein. Wie wird das bemerkbar?
 
Wie erkennt man denn, dass das Browsergame valides XHTML verwendet?
Am besten durch einen externen Validator klären lassen.
The W3C Markup Validation Service

Habe mich testweise auf Spiel das Leben angemeldet und durch Tamper Data diese Information gefunden
Code:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Scheint das wohl zu sein. Wie wird das bemerkbar?

Ich kann auch schreiben das ich perfekt Französich spreche, aber ob ich das dann wirklich mache ist dann eine andere sache....
 
sowas funktioniert auf unterschiedlichste weise ...

im prinzip ist ein bot in diesem fall nichts anderes als ein "anderer" client für das spiel, der automatisiert aktionen ausführt ...

je nach spiel ist es auch denkbar, ein browser addon zu bauen, was die angezeigten seiten des spiels auswertet, und benutzereingaben vortäuscht, in dem es formulare ausfüllt und klicks simuliert ... sowas ist wenn es gut gemacht ist (und nicht 100 mal schneller agiert als jeder mensch), kaum von einem echten user zu unterscheiden (zumindest anhand von logfiles), da es wie der benutzer den browser steuern kann ...

problematisch wirds erst wenn technische maßnahmen ergriffen werden, die klären sollen ob da ein mensch vor sitzt, oder nicht ... problematisch heißt aber nicht unmöglich ... selbst die doch recht ausgefallenen "Fragen" hier hier bei der registrierung gestellt werden, würden in einem spiel nicht viel bringen um bots abzuhalten ... im falle dieses Forums halten sie spam-Bots ab, die mit vBulletin umgehen können, da diese in der regel nicht an ein einzelnes board angepasst werden ... da im falle von bots für browsergames der bot aber meistens für genau dieses eine spiel entwickelt wird, sieht die sache ganz anders aus

man sollte jedoch beachten, dass die meisten spiele betreiber auf bots in etwa so reagieren wie der sprichwörtliche teufel auf das weihwasser ... man könnte hier von einer hochgradigen alergie sprechen ... ;)
 
Einen Bot zu bauen, der den Browser bedient, indem er einfach nur gezielt die Buttons drückt, ist doch eher die etwas einfachere und unsicherer Methode, als gezielt die URLs zu öffnen, und die Rückgaben zu parsen, oder? Doch ich hänge immer noch am parsen der URLs, da es an den URLs nichts zu parsen gibt... Daran http://www.spieldasleben.com/pages/niveau1/index_big.php finde ich leider nicht viel :rolleyes: Wie muss ich das dann machen?
 
Wie muss ich das dann machen?

Wir geben dir hier keine 1:1 Anleitung um dir ein Vorteil zu verschaffen, das über Bots oder Scripte läuft.

An der URL selber ist nix, wie du schon bereits erkannt hast. Jetzt kommt es drauf an wie die URL aufgerufen wurde. Per Formular? (Hidden Attribute) Per Flash? (Im Hintergrund ist eine andere tätigkeit ausgeführt wurden die du direkt im Browser nicht siehst außer du nimmst das Flash teil auseinander bzw den seine Request)
 
Im Grunde musst du das analysieren was dein Rechner bei den entsprechenden "Tätigkeiten" die, die später der Bot ausführen soll, an das Game schickt ( z.B. mit Wireshark ). Anschließend musst du ein Programm schreiben das die entsprechenden "Befehle" ( je nachdem was für ein BG es ist und wie mit deinem Rechner kommuniziert wird z.B. direkt über die URL ) so an das Game übermittelt ( Browserkennung, .. ) das das Game es akzeptiert und es nicht als Bot erkannt wird ( z.B. durch zu schnelle Reaktionszeit, zu lange Laufzeit usw. usf. ).

Soll der Bot noch auf ein Spielgeschehen reagieren dann musst du vor dem ganzen die "Seite" ( also das was dir das BG schickt und dann normalerweise aufm Browser angezeigt wird *g*) mit dem Bot analysieren ( z.B.: Quelltext mit RegEx durchgehen und das gewollte raussuchen ) und dann den Bot entsprechend handeln lassen.

Bots für BGs gibts viele aber die meissten BGs haben ein Botverbot in ihren Regeln und es wird auch eifrigst nach ihnen gesucht und falls einer gefunden wird, wird der Account auch meisst gesperrt/gelöscht. Wenn du also sowas mal machen willst dann entweder da wo es erlaubt ist ( ja, kann vorkommen hab mal bei einem angefragt ob ich da für ein Kartentool nen Bot machen darf und er hats zugelassen, leider gibts das BG nimma ) oder du musst mit ner Accountsperrung rechnen.
 
Im Grunde musst du das analysieren was dein Rechner bei den entsprechenden "Tätigkeiten" die, die später der Bot ausführen soll, an das Game schickt ( z.B. mit Wireshark ). Anschließend musst du ein Programm schreiben das die entsprechenden "Befehle" ( je nachdem was für ein BG es ist und wie mit deinem Rechner kommuniziert wird z.B. direkt über die URL ) so an das Game übermittelt ( Browserkennung, .. ) das das Game es akzeptiert und es nicht als Bot erkannt wird ( z.B. durch zu schnelle Reaktionszeit, zu lange Laufzeit usw. usf. ).
Habe die URL fürs Erdbeeren kaufen herausgefunden. Doch wenn ich einfach zu dieser Adresse navigiere, wird nicht das gewünschte ausgeführt (Erdbeeren kaufen). Hat das etwas mit Cookies zutun?
Soll der Bot noch auf ein Spielgeschehen reagieren dann musst du vor dem ganzen die "Seite" ( also das was dir das BG schickt und dann normalerweise aufm Browser angezeigt wird *g*) mit dem Bot analysieren ( z.B.: Quelltext mit RegEx durchgehen und das gewollte raussuchen ) und dann den Bot entsprechend handeln lassen.
Durch Wireshark konnte ich ganz einfach die gewünschten Werte suchen und auslesen :)
 
Habe die URL fürs Erdbeeren kaufen herausgefunden. Doch wenn ich einfach zu dieser Adresse navigiere, wird nicht das gewünschte ausgeführt (Erdbeeren kaufen). Hat das etwas mit Cookies zutun?

Kommt drauf an was du mit "navigieren" meinst. Ohne deinen Code ( hast du einfach die URL kopiert und Eingabezeile des Browser eingefügt oder schon ein entsprechendes Programm ( PHP? ) erstellt? ). Je nachdem kanns verschiedene Gründe haben warum es nicht läuft z.B. der Cookie oder aber auch das dein Programm etwas falsch bzw. nicht übermittelt ( Browserkennung, SessionID,... ). Evtl. lässt du das Programm auch einfach so laufen und hast dich vorher nicht durchs Programm einloggen lassen...?
 
Also zuerst habe ich mich eingeloggt (dafür habe ich schon ein kleines Programm) und dann diese URL in die Adressbar eingefügt und dahin navigiert.
Wie muss denn die Session-ID und Browserkennung übermittelt werden?Wodurch geschieht das? Wird ja nicht über die URL passieren?
 
Also zuerst habe ich mich eingeloggt (dafür habe ich schon ein kleines Programm) und dann diese URL in die Adressbar eingefügt und dahin navigiert.
Wie muss denn die Session-ID und Browserkennung übermittelt werden?Wodurch geschieht das? Wird ja nicht über die URL passieren?

Stichwort http-Header, Referrer, Sessioncookies.
 
Zurück
Oben