AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Windows/Linux Native/Flash Sockets
Thema durchsuchen
Ansicht
Themen-Optionen

Windows/Linux Native/Flash Sockets

Ein Thema von glotzer · begonnen am 24. Nov 2011 · letzter Beitrag vom 24. Nov 2011
Antwort Antwort
glotzer

Registriert seit: 15. Apr 2009
30 Beiträge
 
#1

Windows/Linux Native/Flash Sockets

  Alt 24. Nov 2011, 16:17
Hallo alle zusammen,
ich hab hier ein bischen ein schwierigeres Problem:
Ich bin gerade am planen um ein Programm für ein Multiplayerspiel zu schreiben,
welches die Chat-logs des Spieles aufzeichnet und gewisse Statistiken erstellt.
(ja, ich habe mit dem Betreiber darüber gesprochen und es ist nicht gegen die AGBs)

Das Problem ist nur an die Daten zu kommen: dazu muss ich den Netzwerktraffic zwischen Client und Server abfangen,
und dann das Protokoll parsen.
Letzteres ist nich weiter schwierig da local mittels Proxy bereits erfolgreich getestet.

Einziger Haken: nicht jeder der späteren Anwender wird Lust haben sich einen 2. PC hinzustellen und ihn als Proxy zu verwenden, nur um an die Statistik zu kommen. Mal abgesehen davon das ich Probleme hab den Spiel- und den "normalen"-Traffic auseinander zu halten.
Also muss ich irgendwie an die Daten kommen bevor sie gesendet werden. Da der Client (leider) in 4 verschiedenen Versionen (windows 32 bit native, windows flash, linux 32bit native, linux flash) existiert denke ich mal das das nicht sooo einfach wird.
Linuxsupport ist nur 2.-rangig, erstmal geht es mir algemein um eine Idee wie man sowas am besten macht.

Meine Ideen bisher:

1. Die Send und Recive funktion der Sockets hooken:
Will ich nicht umbedingt, da dies wohl ziemlich schwer ist, abgesehen davon das ich darüber im www so gut wie keine Informationen gefunden habe.
Außerdem denke ich das das spätestens beim Flashplayer probleme macht rauszufinden was vom Spiel und was von z.B. Youtube ist.

2. Einen Proxy auf dem System hosten und die Serveradresse im Client-RAM auf localhost umbiegen, dann eben weiterleiten
Hier hab ich das Problem das ich keine Ahnung hab wie ich bei Flash etwas im RAM ändern könnte, da es ja in einer VM läuft.

Jetzt frag ich mich ob ich wirklich eine der beiden Ideen umsetzen sollte, wo ich aber das Problem hätte ob es
wenigstens irgend ein halbwegs aktuelles Beispiel wie man (Sicher, ohne Abstürtze/Bluescreens und Treiberinstalation) die Sockets hookt, bzw den Flash-RAM ändert gibt.

Oder hat wer eine viel Bessere Idee?


Danke für die Gedult so viel Text überhaupt zu lesen,
hoffentlich kann mir wer helfen


Crosspost: Entwickler-Ecke
  Mit Zitat antworten Zitat
Dawn87

Registriert seit: 15. Feb 2007
Ort: Lüdenscheid
189 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Windows/Linux Native/Flash Sockets

  Alt 24. Nov 2011, 16:44
Früher gab es die Möglichkeit einen LSP für so etwas zu schreiben:
http://www.microsoft.com/msj/0599/la...edservice.aspx

Allerdings konnte davon immer nur einer gleichzeitig aktiv sein. Da müsstest Du mal recherchieren ob das noch aktuell ist und eventuell eine akzeptable Einschränkunge wäre. Eventuell kannst Du auch WinPCAP einsetzen, das nutzt z. B. WireShark (früher hieß es Etherreal) um Pakete abzufangen.

Ich verstehe nicht, wozu Du einen zweiten PC brauchst?!

Von Idee Nr. 2. würde ich Abstand nehmen, da ich mir sehr gut vorstellen kann, das dir die Heuristik einiger Virenscanner da in die Quere kommen könnte.

Noch ein Link zu WinPCAP:
http://www.magsys.co.uk/delphi/magmonsock.asp


Edit:
Der LSP ist wohl auch nicht unbedingt zu empfehlen:
Zitat:
Sniffing network traffic through LSP can sometimes be troublesome since anti-virus vendors typically flag such activity as malicious — a network packet analyzer is therefore a better alternative for capturing network traffic.
http://en.wikipedia.org/wiki/Layered_Service_Provider

Beste Grüße,
Stefan

Geändert von Dawn87 (24. Nov 2011 um 17:02 Uhr)
  Mit Zitat antworten Zitat
glotzer

Registriert seit: 15. Apr 2009
30 Beiträge
 
#3

AW: Windows/Linux Native/Flash Sockets

  Alt 24. Nov 2011, 17:39
alsooo:
Ich verstehe nicht, wozu Du einen zweiten PC brauchst?!
dieser ist mit dem ersten über LAN verbunden, darauf läuft ein DNS server der bei allen interesanten URLS die eigene IP antwortet, und auf den entsprechenden Ports läuft ein Server der einfach alles mitloggt und dann weiterleitet. Ich bin mir ziemlich sicher das das auch mit einem PC ginge, aber da ist mir die Arbeit und unsicherheit zu groß um damit zu experimentieren.

DAS sieht doch richtig gut aus Danke da werd ich mich mal mit beschäftigen und hier wieder melden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz