Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 10:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C++ Browsergame Bot

Discussion on C++ Browsergame Bot within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2011
Posts: 225
Received Thanks: 8
C++ Browsergame Bot

Hallo

Ich wollte mich mal an einen Browsergame Bot ransetzen.

Ich habe Grundkenntnisse in C++, und mir ist bewusst -jedenfalls sagen das viele - Das es mit C# um einiges leichter sein soll, warum weiß ich ehrlich gesagt nicht dass ist mir auch egal denn mit C++ müsste es ja auch klappen.

Ich habe im Internet gelesen dass man für das Browsergame "Wurzelimperium" sehr leicht ein Bot erstellen kann, das es kaum Sicherheitsmaßnahmen besitzt.

Ich hab mal etwas rumgespielt und mit Wireshark mit geschnitten.

Ich habe als erstes eine Pflanze geerntet ohne dass sie fertig war, eine neue angepflanzt, diese gegossen und dann geerntet sobald sie fetig war.

1.HTTP 799 GET /ajax/ajax.php?do=changeGarden&garden=1&token=1fff7bdd8e 2e851cc5ce967764636de8 HTTP/1.1

2.HTTP 798 GET /save/ernte.php?pflanze[]=32&feld[]=3&felder[]=3&closepopup=1&ernteJa=ernteJa HTTP/1.1

3.HTTP 815 GET /save/pflanz.php?pflanze[]=6&feld[]=3&felder[]=3&cid=1fff7bdd8e2e851cc5ce967764636de8&garden=1 HTTP/1.1

4.HTTP 803 GET /save/wasser.php?feld[]=3&felder[]=3&cid=1fff7bdd8e2e851cc5ce967764636de8&garden=1 HTTP/1.1

5.HTTP 788 GET /save/ernte.php?pflanze[]=6&feld[]=3&felder[]=3&cid=1fff7bdd8e2e851cc5ce967764636de8&garden=1 HTTP/1.1

1.=Zum Garten gewechselt
2.=Unfertige Pflanze geerntet
3.=Neu Angepflanzt
4.=Gegossen
5.=Fertig geerntet

Als erstes ist mir dieser token aufgefallen, und ich frage mich wie dieser generiert wird.
-Beim neu einloggen ändert sich dieser Token-

Als zweites frage ich mich warum der token nicht benötigt wird wenn man die unfertige pflanze erntet.

Soooo... Wenn ich jetzt wüsste wie ich selber diesen token generiere bzw herausfinde, dann bräuchte ich doch "nur" eine Bibliothek (Habe oft von curl oder libcurl gehört) mit der ich diese Befehle abschicken kann und dann würde es schon funktionieren?

Mir ist bewusst dass wenn ich einen guten Bot machen würde, dass dies locker mehrere Monate daueren kann.

MFG
Krabat2 is offline  
Old 07/08/2015, 00:49   #2


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Den Token wirst du höchstwahrscheinlich im Quelltext auslesen können, den du beim Login anfragst (Hauptseite des Spiels).

Beim 2. müsstest du den Entwickler fragen. Wir wissen nicht was er sich dabei gedacht hat

Naja. Für den Token, musst du dich wie gesagt einloggen und aus dem Quelltext raus extrahieren um es mal grob zu sagen.
Requi is offline  
Thanks
1 User
Old 07/08/2015, 07:23   #3
 
elite*gold: 0
Join Date: Jun 2011
Posts: 225
Received Thanks: 8
Vielen Dank schonmal für den Hinweis

Ich habe tatsächlich etwas gefunden. Nachdem ich mich eingeloggt habe, habe ich im Quelltext das hier gefunden: ajax.setToken("1224820dd88134b606b8182d4d9b2ab3");

Ich kenne mich mit sowas nicht aus und frage mich jetzt wie ich den abfragen kann.

Gibt es sowas wie ajax.getToken oder so?
Krabat2 is offline  
Old 07/08/2015, 07:30   #4


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
Nachdem du die Login-Request abgeschickt hast, einfach per Regex oder dergleichen in der Response nach der Stelle suchen und den Token damit auslesen.
Da brauchst du kein JavaScript-Interpreter oder sowas, um damit eigens irgendeine Funktion aufzurufen.
Mit freundlichen Grüßen
Jeoni
Jeoni is offline  
Thanks
1 User
Old 07/08/2015, 21:09   #5
 
elite*gold: 0
Join Date: Jun 2011
Posts: 225
Received Thanks: 8
Ich habe jetzt mal die POST Pakete gescannt (Mit dem Login Post loggt man sich doch ein ? )

Und habe das hier gefunden:

HTTP 922 POST /dispatch.php?r=598890346 HTTP/1.1 (application/x-www-form-urlencoded)

Und das sieth ja wieder nach einem token oder so aus.

Der ändert sich auch bei jedem Login, und jetzt fareg ich mich wie ich den Token raus kriegen kann, denn der wird doch erst beim Login generiert oder?
Krabat2 is offline  
Old 07/08/2015, 21:23   #6


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Das scheint mir eher wie eine random zahl die generiert wird. Ist wahrscheinlich da um schlechte Bots zu erkennen (die immer den selben Random nutzen)
Requi is offline  
Thanks
1 User
Old 07/08/2015, 21:28   #7
 
elite*gold: 0
Join Date: Jun 2011
Posts: 225
Received Thanks: 8
Das bedeutet die Zahl die ich verwende ist egal? Solange ich nicht jedesmal die selbe verwende?
Krabat2 is offline  
Old 07/08/2015, 22:37   #8


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
Möglich. Kann aber auch sein, dass die Zahl, die dort hingehört, nicht einfach zufällig vom Client generiert wird, sondern vom Server und irgendwo (ggf. versteckt) im Quelltext von der Seite steht, von der die Post-Request aus gesendet wird.
Kannst es erst mit zufälligen Zahlen probieren und wenn es nicht klappt, die mal den Quelltext ansehen. Oder du schaust gleich nach, ob dem so ist, damit du gar nicht erst Aufmerksamkeit auf dich ziehst und ggf. einen Bann kassierst (ist bei so einem f2p Game aber eh egal).
Mit freundlichen Grüßen
Jeoni
Jeoni is offline  
Thanks
1 User
Old 07/09/2015, 18:11   #9
 
elite*gold: 0
Join Date: Jun 2011
Posts: 225
Received Thanks: 8
Soo...

Ich habe diesen Code kopiert und durch meine Url, server, name und passwort ersetzt und erfreulicherweise hat es nicht nur funktioniert, sondern es wurde auch gleich der token mitgeschickt


Ich werde mal etwas recherchieren und sicherlich herausfinden wie ich den Token auch in meinem programm dann verwenden kann. Vielen Dank an euch

Edit: der Link
Krabat2 is offline  
Old 07/13/2015, 15:22   #10
 
elite*gold: 0
Join Date: Jun 2011
Posts: 225
Received Thanks: 8
Ich musste leider feststellen , dass ich mich in der Materie noch zu wenig auskenne um den Token zu extrahiere.

Wie gesagt der gesamte Code ist nur C&P mit leichten Änderungen.

Die Info über den Status und den Token bekomme ich ja mit diesem Befehl:
curl_easy_perform(curl);

Ich weiß nicht wie man den Token jetzt einzeln verwenden kann

Wäre froh wenn mir jemand helfen könnte.


Jetzt zu meiner 2. Frage. Um z.B. eine Pflanze anbauen zu können müsste ich doch nur diesen Befehl hier verwenden:
PHP Code:
curl_easy_setopt(curlCURLOPT_URL"http://s46.wurzelimperium.de/main.php?/save/pflanz.php?pflanze[]=6&feld[]=3&felder[]=3&cid=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&garden=1 "); 
oder ohne das "/main.php?"?
Krabat2 is offline  
Old 07/17/2015, 20:17   #11

 
Delinquenz's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,160
Received Thanks: 232
Du musst eine CURLOPT_WRITEFUNCTION verwenden und den Body (das, was dir da in der Konsole ausgegeben wird) in eine Variable speichern. Aus dieser Variable machst du dann entweder ein JSON oder du extrahierst die Daten, die du brauchst, mit regulären Ausdrücken.

EDIT: Ok, nicht auf's Datum geschaut..
Delinquenz is offline  
Old 07/17/2015, 21:29   #12
 
elite*gold: 0
Join Date: Jun 2011
Posts: 225
Received Thanks: 8
Ist doch nur 4 Tage her Ò_ó

Ich habe mich erstmal mit einem anderen browsergame beschäftigt (ohne token)

Aber danke für die Hilfe ich werde es die nächsten Tage testen
Krabat2 is offline  
Old 07/25/2015, 12:42   #13
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
Quote:
Originally Posted by Requi View Post
Das scheint mir eher wie eine random zahl die generiert wird. Ist wahrscheinlich da um schlechte Bots zu erkennen (die immer den selben Random nutzen)
Hat zu 99% nichts mit ner Boterkennung zu tun. Random zahlen, die am ende einer Url kommen sind nahezu immer zum umgehen von ProxyCaching gedacht, da es immernoch welche gibt die die ganzen Caching Header nicht sauber erfassen. Durch das Anhängen einer Randomzahl ist sichergestellt das du nicht die gecachte Antwort die für ein anderen User war bekommst.
dready is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Collection Thread] Ich suche ein Browsergame / I'm searching for a Browsergame
01/25/2023 - Browsergames - 88 Replies
http://cdn.elitepvpers.org/images/de.png German / Deutsch Wenn ihr ein Browsergame sucht dann postet eure Anfrage bitte in diesem Thread. Posts die vom Thema abweichen werden gelöscht und bestraft. Mit freundlichen Grüßen, Nectix
Neues Browsergame!/New Browsergame!
04/20/2009 - Browsergames - 1 Replies
Also ich hab mal ein neues Browsergame für euch! das mega geil! Steege My Brute A new Browsergame is´t very cool and make a lot of fun :) :mofo:



All times are GMT +1. The time now is 10:20.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.