An alle BotCoder

12/22/2010 21:22 SpinnenGetier#1
Hallo Coder

Bin mittlerweile ziemlich weit gekommen mit meinem SDS Bot für Die-Staemme (auch für langsame Welten zu gebrauchen). Der geht richtig ab, schafft 4 Angriffe in 400 ms. Farmbot ist auch schon implementiert, als eigener Thread in einem Threadpool. Habe inzwischen 3500 Zeilen Code, mit GUI.

SDS die schneller Variante des Browsergames (bis zu 400 mal schneller) stellt jetzt aber ein sehr grosses Problem dar: Jede 3 Minuten wird die Session ID (sid) aktualisiert, was bei den normalen Servern nicht der Fall ist. An für sich kein Problem, denn ich kann die SID ja aktualisieren falls sie dem Bot zugesendet wird ABEEEEEEEEEEEEEEER da ich und der Bot gleichzeitig angemeldet sind, kann es passieren, dass die Session ID entweder dem Browser (falls ich gerade eine Aktion tätigte) oder halt dem Bot zugeschickt wird (dann ist die Session im Browser beendet, was katastrophal ist in SDS).

Wie würdet ihr vorgehen? :/

Bei SDS muss man gleichzeitig angemeldet sein, ein Bot kann niemals alleine das Spiel steuern (könnte vieleicht schon^^, aber da wäre ich 1 Jahr am Coden)...
12/23/2010 03:24 SmackJew#2
entweder baust du einen browser in deinen bot ein und spielst über den gleichzeitig, so haben bot und browser die selbe sid, oder du baust den bot in deinen browser ein und holst dir die daten über den
12/23/2010 08:28 -AmA-#3
Quote:
Originally Posted by SmackJew View Post
entweder baust du einen browser in deinen bot ein und spielst über den gleichzeitig, so haben bot und browser die selbe sid, oder du baust den bot in deinen browser ein und holst dir die daten über den
this^

schau dir mal den code des ds bot an...
[Only registered and activated users can see links. Click Here To Register...]
12/24/2010 01:07 hallamasch#4
*Anmerkung nur zur vollständigkeit* (die bereits genannten Methoden sind einfacher)


Noch ne Methode wäre es nen Raw Socket zu erstellen und auf dem lauschen und die SET-COOKIE Packete abfangen.

So hat der Bot immer die passende Sid.

Anschliessend, das Cookie in die Cookie File des jeweiligen Browser schreiben.
12/24/2010 01:43 mydoom#5
Quote:
Originally Posted by hallamasch View Post
Raw Socket zu erstellen und auf dem lauschen und die SET-COOKIE Packete abfangen.
Dafür brauchst du keine Raw Sockets.
12/24/2010 01:47 hallamasch#6
Quote:
Originally Posted by mydoom View Post
Dafür brauchst du keine Raw Sockets.
Bitte erklären. *nobody is perfect =)*

Wenn du den Browser nicht selbst gestartet hast, haste auch keine Verbindung zu dem seinem Socket.

Du könntest natürlich auch was in dem seinen Speicher Bereich injecten und dir so das Browser Socket holen.

Frohe Weihnachten.
Hallamasch
12/24/2010 16:39 SpinnenGetier#7
Ihr seit wirklich genial:)

An sowas habe ich bisher gar nicht gedacht, tönt echt geil

ich habs es jetzt anders gelöst, nämlich indem ich in meinem Haupt Java Programm via Script Engine JavaScript ausführe und mir die Cookies im Cookie Manager Interface hole ;D tönt komisch ist aber so :/

mit denen raw sockets müsste ich dann TCP Pakete sniffen, oda?

schöne weihnachten und codet ned den heilig abend durch :)