AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Packets von und an ein bestimmtes Programm auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Packets von und an ein bestimmtes Programm auslesen

Offene Frage von "Seren200018"
Ein Thema von Seren200018 · begonnen am 1. Okt 2008 · letzter Beitrag vom 8. Okt 2008
Antwort Antwort
Seite 2 von 2     12   
hamburcher
(Gast)

n/a Beiträge
 
#11

Re: Packets von und an ein bestimmtes Programm auslesen

  Alt 3. Okt 2008, 18:48
Im Prinzip fährst Du also einen Man-in-the-Middle Angriff aus. Da würde ich trotz Erlaubnis des Auftraggebers vorsichtig sein...
  Mit Zitat antworten Zitat
Seren200018

Registriert seit: 18. Aug 2007
46 Beiträge
 
#12

Re: Packets von und an ein bestimmtes Programm auslesen

  Alt 3. Okt 2008, 19:04
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.
  Mit Zitat antworten Zitat
Seren200018

Registriert seit: 18. Aug 2007
46 Beiträge
 
#13

Re: Packets von und an ein bestimmtes Programm auslesen

  Alt 7. Okt 2008, 23:14
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:
setlength(t,packetinfo.PacketLen);
    move(packetinfo.databuf,t[0],packetinfo.PacketLen);
    if (started) then packetanalysermain(t);
t ist hierbei ein Array of Byte . Packetinfo.Databuf ein pointer auf ein Array of byte.Packetlen ist die Größe von Databuf.

Irgendwelche Ideen wie ich das umgehe?
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Packets von und an ein bestimmtes Programm auslesen

  Alt 8. Okt 2008, 11:20
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
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Seren200018

Registriert seit: 18. Aug 2007
46 Beiträge
 
#15

Re: Packets von und an ein bestimmtes Programm auslesen

  Alt 8. Okt 2008, 11:56
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
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Packets von und an ein bestimmtes Programm auslesen

  Alt 8. Okt 2008, 12:55
schreib ma die sourcecode stelle samt aufgerufener funktionen wo er meckert, denn schau ich mir das nacher mal an
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Seren200018

Registriert seit: 18. Aug 2007
46 Beiträge
 
#17

Re: Packets von und an ein bestimmtes Programm auslesen

  Alt 8. Okt 2008, 13:23
HA Ich habe den Fehler grade gefunden.
Danke für den Hinweis auf die Call funktionen.

Hier die Fehlstelle:
Move ( ((PackPtr) + OFFSET_IP)^, DataBuf [1], DataLen) ; und hier die Reparatur
Move ( ((PackPtr) + OFFSET_IP)^, DataBuf [0], DataLen) ; Das Problem war das ich ein Move in Magentamonpcap übersehen hatte in dem das Array of Byte auf das andere geschickt wird.
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.
  Mit Zitat antworten Zitat
Seren200018

Registriert seit: 18. Aug 2007
46 Beiträge
 
#18

Re: Packets von und an ein bestimmtes Programm auslesen

  Alt 8. Okt 2008, 21:45
Ein Problem besteht noch. Irgendwie fange ich keine ausgehende packets auf. Die würden mir das leben sehr vereinfachen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:22 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