Pakete abfangen / SWF

  • VB.NET

SSL ist deaktiviert! Aktivieren Sie SSL für diese Sitzung, um eine sichere Verbindung herzustellen.

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    Pakete abfangen / SWF

    Guten Abend ihr Lieben! Ich hab zwei Fragen bezüglich des Abfangen von aus- und eingehenden Paketen eines Multiplayer Flash Games.
    Ich möchte mich via WebBrowser Control ins Spiel einloggen & es auch natürlich darstellen, danach möchte ich bestimmte Aktionen im Spiel loggen (wie z.B: ein Spieler, lacht / hört auf zu lachen).

    Meine Fragen wären nun:
    Spielt es eine Rolle dass die Verbindung durch HTTPS gesichert ist?
    NetworkStream-Klasse <- ist alles was ich benötige? (Großteils)

    Ich bedanke mich schonmal :)

    SysOp1 schrieb:

    Guten Abend ihr Lieben!
    Um Halb 5 in der frühe? ;D

    SysOp1 schrieb:

    Abfangen von aus- und eingehenden Paketen
    Für das, was du erreichen willst, musst du keine Packete abfangen.

    SysOp1 schrieb:

    via WebBrowser Control ins Spiel einloggen

    SysOp1 schrieb:

    es auch natürlich darstellen
    Ich gehe mal davona aus, dass es sich bei deinem "Problem" um folgende Situation handelt: Du hast eine Seite, die ein auf SWF basierendes Spiel anbiete. Dein Ziel ist es jetzt ein Programm zu schreiben, in welchem du ein WebBrowser Control öffnest und dich im Spiel anmelden kannst. Alles nur um nicht deinen Browser öffnen zu müssen.

    SysOp1 schrieb:

    Spielt es eine Rolle dass die Verbindung durch HTTPS gesichert ist?
    Da du - wie in #1 gesagt - keine Packete abfangen brauchst, spiel es keine Rolle, ob die Daten über HTTP, HTTPS oder FTP übertragen werden. Du wirst sowieso nicht auf Protokoll Ebene Arbeiten.

    SysOp1 schrieb:

    NetworkStream-Klasse <- ist alles was ich benötige? (Großteils)
    Ich denke du hast die Klasse falsch verstanden. Sie ist "lediglich" dazu da einen Stream (also einen Datenkanal) bereit zustellen. Etwa wenn du eine Verbindung zwischen einem TCP Client und Server etablieren willst. Dann brauchst du einen NetworkStream

    Für dich am einfachsten wäre, wenn die Anwendung (also das Spiel) eine API zur Verfügung stellt

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Du könntest gelegentlich im Flash dem VB script daten zu kommen lassen durch...
    • Textboxen mit außergewöhnlichen namen
    • Unsichtbare Projekt "Notizen" die daten enthalten
    • Label's mit daten inhalt
    Oder du kannst auch VB beibringen die Anzeigen im Spiel zu lesen.
    Jetzt aber richtig: Guten Morgen! :D
    Erstmal vielen Dank für's Aufklären bezüglich NetworkStream und du hast soweit auch alles richtig verstanden.
    Zum Thema API, der Endpunkt ist mir bekannt nur gibt es keine Dokumentation der API seitlich der Entwickler.
    Und ich würde dennoch gerne Pakete loggen und im späteren Verlauf sie zu entschlüsseln, modifizieren & sogar wieder senden wollen.

    Wozu das ganze kann ich dir auch sagen, ich möchte Leuten ermöglichen clientseitige Veränderungen im Spiel vorzunehmen.
    Das heißt - die Funktion im Spiel "Tanz - 5" ist nur für Benutzer der Gruppe "admin", wir sind aber "user" und tanzen trotzdem, denn wir senden das Paket an den Clienten.
    Sehen zwar nur wir, das ist uns aber egal - denn wir wollen ja kein Gamehack oder so programmieren.

    Edit: / @SpieleArenaORG: Hab deinen Beitrag erst nach meinem Post gelesen. Es ist ein sehr umfangreiches Multiplayer Spiel, so simpel ist das dann leider doch nicht.
    @SysOp1 Je nach dem z.B:

    Du kannst simpel einfach ein timer einbauen und unsichtbare textboxen. Dieser Timer aktualisiert sich alle X sekunden und schreibt in die text boxen die informationen. So eine class kann mann normalerweise immer benutzen und einfach if abfragen reinbauen falls bestimte werte nicht ausgegeben sein sollen und null statdessen schreiben dass kann man dann in vb abfangen usw...

    Oder versuch einfach die bereits existierenden textboxen dazu zu nutzen und lese die einfach aus!

    SpieleArenaORG schrieb:

    unsichtbare textboxen
    Schrecklich!

    Hier ist eine String-Variable (ggf. als Property) viel effektiver.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Warum einfacher?
    Textbox.Text = "ABC"
    StringVariable1 = "ABC"

    Es macht im späteren Verlauf nur Ärger und schlechten Code sollte man sich gerade am Anfang gar nicht erst angewöhnen.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Schamash schrieb:

    Warum einfacher?
    Textbox.Text = "ABC"
    StringVariable1 = "ABC"

    Es macht im späteren Verlauf nur Ärger und schlechten Code sollte man sich gerade am Anfang gar nicht erst angewöhnen.


    Richtig!
    @SpieleArenaORG trotzdem vielen Dank, war ja nett gemeint, auch wenn deine Methode gar nicht empfehlbar ist :D
    Es soll ein großes Projekt werden woran ich wirklich festhalte und auch weiterhin festhalten werde, deshalb ist sauberer Code & Performance in erster Linie das wichtigste.

    @Radinator Ich habe nun die aktuellste .SWF Datei des Spiels und werde sie nun decompilen, da sollte ich auch Funktionen unverschlüsselt einsehen können.
    Das wäre ja nicht das Problem, aber ich möchte trotzdem Pakete erhalten/senden - das soll die Hauptfunktion sein.

    Und das Ziel ist es den eigenen Browser (Chrome, Mozilla, etc.) nicht zu nutzen, sondern das WebBrowser Control was mir einiges erleichtert. (oder? ;))
    Nun wäre meine Frage wie bzw. mit welcher Methode ich gezielt Pakete aus dieser Quelle erhalten kann.

    SysOp1 schrieb:

    irgendwie konnte mir hier nie geholfen werden

    Das tut mir Leid für deine Anliegen.
    Aber das Wissen bzw. die korrekten Antworten auf Fragen leider nicht unbegrenzt.

    Umso mehr liegt mir die Forumsfunktion am Herzen, dass wenn jemand die selben Probleme hat, sich nicht genauso durchforsten musst, wie es dir jetzt ergangen ist.
    Deshalb wäre ich - und auch viele Zukünftige Besucher - sehr dankbar, wenn du kurz beschreibst wie du die Problemstellung gelöst hast.

    Ich hoffe die nächsten Threads werden etwas erfolgreicher für dich.


    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Herzlich Willkommen im Leben eines Programmierers. Sehr oft muss man da Probleme selbstständig lösen können und das kostet oft sehr viel Zeit. Kenne ich nur zu gut. Nicht immer ist halt jemand da, der das alles schon mal gemacht oder genau die gleiche Situation gehabt hat.
    Finde ich aber ehrlich gesagt schon etwas heftig, nach 2 Tagen direkt mit so einem Vorwurf zu kommen. Als hätte sich halt auch niemand bemüht, irgendwas zu machen. Das ist aber ja nicht der Fall. Was ist jetzt die Lösung zu dem Problem?
    Threads werden btw nicht einfach so geschlossen. Du kannst ihn höchstens als "Erledigt" markieren.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Fragen per PN, denn dafür ist das Forum da :!:
    Hi,

    also dein Anliegen ist alles andere als trivial und wenn die einzige Vorarbeit ist:

    ​NetworkStream-Klasse <- ist alles was ich benötige? (Großteils)


    Wo man eigentlich rausliesst das du dich Nüsse damit selber auseinander gesetzt hat, dann übersteigt dies einfach die Zeit der meisten, da man alles selber machen müsste.
    Ich habe dein Vorhaben noch nie versucht, aber die ersten Dinge die ich mich frage wären:

    - ist es irgendwie möglich über das WebBrowserControl auf das Flashplayer ActiveX zuzugreifen, und wenn, kann man darüber überhaupt etwas über die gesendeten Daten erfahren
    - man könnte mit PCap die Daten mitsniffen, so wie es WireShark macht, ist verbunden mit einem NET Wrapper github.com/PcapDotNet/Pcap.Net <- erfordert gute Kenntnisse der Protokolle
    - man könnte mit sowas wie CheatEngine den Speicher beobachten und versuchen die Daten aus dem Arbeitsspeicher zu lesen <- erfordert gute Kenntnisse zu Auslesen des Speichers mit ReadMemory API etc und Verständnis dafür
    - man kann SWF Dateien auch dekompiliren und dort schauen ob man iwas interessantes findet <- führt vll zu nichts
    - man kann mit einem Browser und DevTools die Traffic anschauen, vll liefert die Seite ja neben der SWF noch mehr Information in XML Form <- auch eher unwahrscheinlich
    - gibt es iwelche Projekte zum sniffen des Webbrowser Controls? -codeproject.com/Articles/15732…or-for-Webbrowser-Control hab das gefunden auf die Schnelle, ist aber von 2011 und fraglich ob es Flash auch anzeigt.

    Wie du siehst gibt es viele, teils komplizierte Möglichkeiten und es erfordert einiges an Aufwand, Analyse und Engagement.

    Wenn du etwas mehr hast, dann kannst gerne wieder anfragen. Vielleicht findet sich auch jemand der es für dich macht..

    LG
    Das ist meine Signatur und sie wird wunderbar sein!