![]() |
Packets von und an ein bestimmtes Programm auslesen
Wie der Titel schon sagt will ich packets von und an ein bestimmtes Programm auswerten.
Das Problem ist das das Program in verschiedenen Instanzen gestartet werden kann und ich diese getrennt auswerten will. Ich bin für jede Idee dankbar und da ich nur Hobbyprogrammierer bin bitte wenn möglich einen kurzen Beispielcode anfügen oder etwas erläutern. |
Re: Packets von und an ein bestimmtes Programm auslesen
Keiner ne Idee? :(
|
Re: Packets von und an ein bestimmtes Programm auslesen
netzwerkpakete oder was für pakete ?
|
Re: Packets von und an ein bestimmtes Programm auslesen
Ja Netzwerkpakete die vom Server an das Program geschickt werden und zurück.
Wenn das Programm nicht in mehreren Instanzen laufen würde könnte ich das einfach über einen IP-Filter regeln aber so muss ich noch irgendwie unterscheiden welches Paket an welche Instanz geht. Die Ports wechseln leider auch permanent dadurch kann ich auch da nicht groß ansetzen. |
Re: Packets von und an ein bestimmtes Programm auslesen
das programm worauf du zugreifst, ist das dein eigenes oder fremdsoftware ?
du könntest ja mal nen paketscanner nutzen und schaun ob du die einzelnen instanzen durch bestimmte pakete identifizieren kannst. |
Re: Packets von und an ein bestimmtes Programm auslesen
Ja ist Fremdsoftware ich habe aber eine verläufige Erlaubniss vom Betreiber solange ich ihm den Qellcode bei Fertigstellung zur Verfügung stelle.
Mir ist grade schon eine Idee gekommen trotzdem wär mir ein direkter weg lieber. |
Re: Packets von und an ein bestimmtes Programm auslesen
HA hab was gefunden da ist auch ein Source Code dabei. Damit müsste es gehen ich werd mich in den nächsten Tagen mal da durch arbeiten!
![]() |
Re: Packets von und an ein bestimmtes Programm auslesen
Zitat:
|
Re: Packets von und an ein bestimmtes Programm auslesen
Das ist mir eigentlich egal da ich das ganze freiwillig mache. Ich darf weiterhin das Programm verändern muss aber vor der
Veröffentlichung das ganze Checken lassen das ich nicht etwa verbotene Dinge eingebaut habe. Und bevor es so weit ist muss ich das Programm erst mal fertigstellen. |
Re: Packets von und an ein bestimmtes Programm auslesen
dat könne die ja sowieso nich checken, woher solln die wissen dass das wirklich der endgültige source ist xD
dazu müssten se deine compilierte exe mit deren compilierte exe vergleichen, aber du schickst denen ja nicht jedesmal wenn du das proggi bentutz denen ne version ^^ |
Re: Packets von und an ein bestimmtes Programm auslesen
Im Prinzip fährst Du also einen
![]() |
Re: Packets von und an ein bestimmtes Programm auslesen
Sie werden das Programm auch hosten.
Aber ihr braucht euch keine Sorgen machen. Es handelt sich nur um eine G15 Unterstützung für ein Onlinerollenspiel. Die Übertragenen Informationen sind weder von besonders brisanter Bedeutung noch verschlüsselt. |
Re: Packets von und an ein bestimmtes Programm auslesen
hmm ich bin jetzt etwas Ratlos.
Ich habe das Packetauslesen nun in mein Programm eingebaut. Problem ist ich bekomme regelmäßig Error. "Project xxx faulted with message 'access violation at 0x00405be5: write of adress 0x01500e48' Process Stopped. Use Step or Run continue." Ich ahne schon warum das Problem auftritt.(Es tritt vor allem auf wenn ich aus einem Rechenintensiven Programm austabbe). Die Cpu ansicht zeigt "push $00000400" als Fehlerstelle an. Der warscheinlich defekte code ist der hier:
Delphi-Quellcode:
t ist hierbei ein Array of Byte . Packetinfo.Databuf ein pointer auf ein Array of byte.Packetlen ist die Größe von Databuf.
setlength(t,packetinfo.PacketLen);
move(packetinfo.databuf,t[0],packetinfo.PacketLen); if (started) then packetanalysermain(t); Irgendwelche Ideen wie ich das umgehe? |
Re: Packets von und an ein bestimmtes Programm auslesen
du kannst dieses problem ziemlich easy lösen.
zuerst leitest du die pakete von den instanzen auf localhost um. das machst du entweder, indem du direkt die serverdaten in den dateien des proggis änderst oder du baust dir nen indytunnel. das ist eine art man-in-the-middle angriff. so hast du leicht zugriff auf die einzelnen instanzen. und dein proggi schickt dann die pakete weiter an den server |
Re: Packets von und an ein bestimmtes Programm auslesen
ah ich habe vergessen zu erwähnen das das Programm bereits die packets auslesen kann und auch den Instanzen zuordnet. Das ganze funktioniert also (außer die gesendeten packete die will er irgendwie nicht finden warscheins liegt es an meinem wlan Adapter aber egal geht auch ohne) Problem ist halt nur der besagt Error.
Der Indytunnel ist eine gute idee ich bin aber etwas skeptisch da das Programm dem server den Port mitteilt an dem es horcht und dies auch bei Portänderung tut. Darum wird der Indytunnel schnell umgangen und bei Programmänderung oder Packetänderung kriege ich das Programm wohl nicht als offiziell durch. Und noch was: Ich habe bereits versucht den Fehler durch eine try Bedingung zu umgehen. Das Resultat war zwar keine Fehlermeldung dafür schließt sich das Programm selbst. Benutzen tue ich Winpcap zusammen mit den Overbyte und leicht abgewandelten Magenta komponenten.(Ich habe bei MagentaHlpapi noch eine Funktion eingebaut die mir bei angabe einer Process Id einen Port ausspuckt und eine die das umgekehrt macht sowie bei Monpcap den Typ von Databuf vom für mich wehrtlosen String zu einem Array of byte geändert) Was mich aber wundert ist das das Orginaldemo Programm keines dieser Probleme hat ich aber noch nicht genau weiß wieso. Kann es daran liege das ich Databuf extern bearbeite? Ich kopiere doch aber um genau das zu vermeiden Databuf auf das Array selber länge T? Oder sollte ich vieleicht um ein Overflow zu verhindern die größe von T fest machen bei zum beispiel 10000byte? Danke Danke schon mal für die Antwort. Ach ja sobald ich wieder die Überschrift des Themas ändern darf ändere ich sie auf "Hilfe bei meinem kleinen Projekt" das es nicht zu missverstädnissen kommt |
Re: Packets von und an ein bestimmtes Programm auslesen
schreib ma die sourcecode stelle samt aufgerufener funktionen wo er meckert, denn schau ich mir das nacher mal an :)
|
Re: Packets von und an ein bestimmtes Programm auslesen
HA Ich habe den Fehler grade gefunden.
Danke für den Hinweis auf die Call funktionen. Hier die Fehlstelle:
Delphi-Quellcode:
und hier die Reparatur
Move ( ((PackPtr) + OFFSET_IP)^, DataBuf [1], DataLen) ;
Delphi-Quellcode:
Das Problem war das ich ein Move in Magentamonpcap übersehen hatte in dem das Array of Byte auf das andere geschickt wird.
Move ( ((PackPtr) + OFFSET_IP)^, DataBuf [0], DataLen) ;
Da aber nun ja ein string bei 1 anfängt aber ein Array bei 0 gab es regelmäßig bei kaputten packeten einen overload. Ich hatte das ganze schon weiter oben ein mal korriegiert aber den Teil weiter unten übersehen. Läuft jetzt Tadellos damit kann ich endlich weitermachen. |
Re: Packets von und an ein bestimmtes Programm auslesen
Ein Problem besteht noch. Irgendwie fange ich keine ausgehende packets auf. Die würden mir das leben sehr vereinfachen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz