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

Hilfe für Bot für Flash game

Dieses Thema im Forum "Main Forum" wurde erstellt von viking001, 27. Juli 2017.

Schlagworte:
  1. viking001

    viking001 New Member

    Registriert seit:
    27. Juli 2017
    Beiträge:
    3
    Zustimmungen:
    1
    Punkte für Erfolge:
    3
    Hallo, ich habe schon einige Bots für Webbrowser Spiele programmiert, und kenne ich mich nicht so schlecht aus. Seite einige Monate spiele ich einen Flash Tower Defense / Resources Gathering Spiel und ich wollte das Ressourcensammeln automatisieren, weil es kein Spass macht. Der Flash Client kommuniziert mit dem Server mit HTTP Posts, ich habe auch den Flash Client decompiliert und den Teil der Kommunikation studiert, und er tut nichts spezielles. Und ich kann die HTTP Posts Anfragen des Flash Clients genau reproduzieren, mit identischen HTTP Headers, Querystring Parameters und Post Body, aber sie funktionieren nicht, der Server antwortet etwas komisches. Auch wenn ich die originalen Anfragen der Flash Clients in Networking Panel von Firefox nochmal sende, antwortet der Server etwas komisches.
    Ich bin verwirrt, ich verstehe nicht, weil nur der Flash Client gute Antworten vom Server kriegt, am Ende der Server kann nicht wissen, wer diese Anfrage sendet, oder schon? Vielleicht jemand hat mehr Erfahrung und weisst etwas, dass ich ignoriere. Aber ich sehe die Anfrage des Flash Clients in Networking Panel von Firefox, d.h. der Flash Client verwendet das FF Networking Modul, und im Code des Flash Client habe ich keine geheimen, versteckten Anfragen gefunden. Ich glaube nicht, dass der Server meine Anfragen als gefälschte erkennt, sondern, dass etwas falsches mit denen gibt, weil ich eine komische Antwort bekomme, die keine Ablehnung scheint zu sein. Ich kann auch nicht erklären, warum das nochmal Senden einer originalen Anfrage in Networking Panel von FF nicht funktioniert. Vielleicht das Networking Panel von FF nicht richtig funktioniert? Aber im Moment bin ich wirklich ideenlos und weiss nicht mehr, was ich versuchen kann, um das Problem zu verstehen und zu lösen, sodass ich das Bot weiter entwickeln kann. Kann jemand mir vielleicht einen guten Tipp geben?
     
  2. w33dt4k3r

    w33dt4k3r Member

    Registriert seit:
    5. Juli 2017
    Beiträge:
    68
    Zustimmungen:
    20
    Punkte für Erfolge:
    8
    Geschlecht:
    männlich
    Ort:
    NRW
    Hm, ich habe mich noch nicht so mit Flashgame Bots beschäftigt, aber ich vermute das dir ohne den Code oder zumindest die Antwort vom Server keiner helfen kann.

    LG
     
  3. viking001

    viking001 New Member

    Registriert seit:
    27. Juli 2017
    Beiträge:
    3
    Zustimmungen:
    1
    Punkte für Erfolge:
    3
    Ich kann schon etwas detaillierte eingeben. Erst die Kommunikation zwischen Server und Client ist mit JSON Objekte gemacht, aber die werden vorher deflated, so wenn man die Anfrage/Antworte sniffelte, sieht man nur binäre Data.
    Die erste Anfrage, die der Client dem Server sendet, ist eine einfache Log/Test Anfrage:

    Code (Text):
    Referer: http://kongregate-vikingage-en.shinezone.com/release/flash/TowerDefanseShell_5.swf
    Content-type: application/octet-stream
    Content-length: 145

    xÚ]ŒK‚0E]ËפEOŒȌÒ؇6‚íÃÄöã2…‰§çž{Ÿæ
    O…[ƒ"OÎ*NsK)pÆQ»ªUü,
    k†@?èp&m¬»A4Pò”¨,J³›Ï¯™P€Í…ü“|½÷¦crü7t½¶™ÚŽJÙÍžªÅk¶“+
    kÛ®íCÃ8¹
    Die Anfrage enthält sogar http Headers, aber sie werden im Code nicht rein getan, d.h. es ist etwas automatisch von URLLoader class von ActionScript. Wenn man die binäre Data inflatet, erhält man das:
    Code (Javascript):
    ¨[{"requestid":95614790400,"command":1},{"request":["stat","flashloading",["1035182782",{"type":"tdServerTest","content":"tdServerTest_failedTimes=0_preDuration=-1"}]]}]
    Man kann bemerken, dass die Anfrage eine Request ID enthält, aber diese Anfragen werden von einem Loader Wrapper gesendet und sie haben alle die gleiche Request ID. Nur der Client später wird die Request ID verwenden und bei jeder Anfrage inkrementieren.

    Die Antwort des Servers ist wieder binäre Data, dass ein deflated JSON Objekt ist
    Code (Text):
    xœ‹6Ô©V*J-,M-.ÉLQ²²45341·4010ÐQJÎÏÍMÌŠê(¥æ%U”(YÔêÆ
    Code (Javascript):
    [1,{"requestid":95614790400,"command":1,"encrypt":0},1]
    Jetzt wenn ich die gleiche Anfrage von Network Panel in FF nochmal sende, d.h. gleich URL, Query String Parameters, http Headers, und Post Body, der Server antwortet mit einem komischen [1,null].
    Code (Text):
    xœ‹6ÔÉ+Íɉ
    Code (Javascript):
    [1,null]
    Wenn der Client neu gestartet wird, er sendet nochmal die gleich Anfrage und der Server antwortet nochmal richtig. So ich verstehe nicht, warum wenn der Client diese Anfrage sendet, der Server antwortet richtig, aber wenn ich die gleiche Anfrage sende, bekomme ich immer einen [1,null] als Antwort.
     
    krusty gefällt das.
  4. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    36
    Zustimmungen:
    24
    Punkte für Erfolge:
    8
    Geschlecht:
    männlich
    Ort:
    Wadiya
    Ich habe leider keine Ahnung von Flash, deshalb nur ein paar Denkansätze von einem Außenstehenden...
    Sniffst du mit einem Browser Plugin bzw. Entwicklertools?
    Sicher, dass deine Antwort richtig codiert wird? Mal mit WPE Pro die Pakete verglichen?
    Stellt der Flashclient eine durchgehende Verbindung her?

    Was meinst du mit:
    Die Anfrage enthält sogar http Headers, aber sie werden im Code nicht rein getan.
     
  5. viking001

    viking001 New Member

    Registriert seit:
    27. Juli 2017
    Beiträge:
    3
    Zustimmungen:
    1
    Punkte für Erfolge:
    3
    @krusty
    Danke für die Denkansätze und ja ich benutze die Entwicklungstool des Browsers, ich werde sicher mit einen Sniffing Tool es kontrollieren, das ist eine sehr gute Idee.
    Und der Flash Client stellt keine durchgehende Verbindung mit dem Server her, ich bin sicher, weil ich den Client dekompiliert habe und ich nur eine Klasse gefunden habe, die für die Kommunikation verantwortlich ist.

    Eigentlich könnten einige http Headers nicht überschrieben werden, wie z.B. der Referer, der die URL der Seite sein sollte, aber der Flash Client "überschreibt" ihn mit seiner URL. Weil der Webbrowser das nicht erlaubt, er verwendet einen alten Trick und fügt die Http Headers im Body der Post Anfrage hinzu. Da im Code des Clients werden diese Http Header nicht hinzugefügt, vermute ich, dass etwas standards von ActionScript UrlLoader Klasse ist.
     

Diese Seite empfehlen

Die Seite wird geladen...