Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Lokalen Netzwerktraffic "mithören" / Programm belauschen (https://www.delphipraxis.net/167635-lokalen-netzwerktraffic-mithoeren-programm-belauschen.html)

Romiox 10. Apr 2012 16:30

Lokalen Netzwerktraffic "mithören" / Programm belauschen
 
Hallo zusammen!

Ich möchte gerne die Kommunikation eines bestimmten Programmes auf meinem PC mitloggen.
Ich habe dazu inzwischen auch den ein- oder anderen Foreneintrag gelesen, aber... :roteyes:

Es geht mir darum, den Traffic eines einzigen Programmes zu belauschen und in meinem Programm
darauf zu reagieren. Das sind bis jetzt noch sehr abstrakte Überlegungen, dementsprechend
gehts mir hier vor allem um das Prinzip; kann ich das Programm direkt belauschen
(anhand des Namens/der .exe/der PID ...)? Kann ich mich an den Ports dazwischen hängen?
Kann ich den gesamten Traffic an meinem Netzwerkadapter belauschen und die Nachrichten,
die mich interessieren, rausfiltern? Muss/kann ich dafür einen Proxy zwischen meinen PC und
die Aussenwelt hängen?

Absolut großartig wärs natürlich, wenn mir jemand schonmal ne Bibliothek an den Kopf werfen
würde. Sofern es keine Schnittstellen gibt, die ich mit Delphi/Java/C# direkt ansprechen kann,
liegt diese Sache nämlich höchstwahrscheinlich weit ausserhalb meiner Fähigkeiten. Aber wie
bereits erwähnt interessiert mich unabhängig davon ob ich das kann oder nicht, welcher der,
Ansätze am ehesten geeignet ist, und ob es vielleicht noch was viel besseres/einfacheres gibt.

Vielen Dank schonmal für Eure Hilfe! :)

Gruß,
Romiox

s.h.a.r.k 10. Apr 2012 16:36

AW: Lokalen Netzwerktraffic "mithören" / Programm belauschen
 
Nachdem ich weiß, dass Wireshark das kann, kann ich dir ein Ja darauf antworten. Aber mit Hilfe welcher Mittel du das bewerkstelligen könntest liegt mir leider fern.

Romiox 10. Apr 2012 16:43

AW: Lokalen Netzwerktraffic "mithören" / Programm belauschen
 
Hallo s.h.a.r.k,

danke für Deine Antwort!

Ich werd mir Wireshark mal angucken, aber vielleicht kannst du mir so schon sagen,
was genau kann der? Ein Programm, den gesamten Traffic oder einzelne Ports überwachen?
Diese Unterscheidung ist ja nicht gerade irrelevant, ich will schließlich nur an
ein Programm. Und den gesamten Traffic zu filtern oder vorher den Port des Programms
herausfinden, das ist schon ein Unterschied im Aufwand (soweit ich das jetzt überblicke).


Gruß,

s.h.a.r.k 10. Apr 2012 16:47

AW: Lokalen Netzwerktraffic "mithören" / Programm belauschen
 
Ganz genau kenne ich mich mit Wireshark nicht aus, aber ich meine, dass es möglich ist entsprechende Filter zu setzen und so das Mithören des Verkehr auf ein spezielles Programm zu reduzieren. Schau dir das Programm einfach mal an, dann wirst du schon sehen, wie mächtig das ist.

p80286 10. Apr 2012 16:48

AW: Lokalen Netzwerktraffic "mithören" / Programm belauschen
 
Vielleicht hilft das hier weiter

s.h.a.r.k 10. Apr 2012 16:50

AW: Lokalen Netzwerktraffic "mithören" / Programm belauschen
 
[OT]
@p80286: Das kostet jetzt aber eine Runde :stupid:
Momentaufnahme: er hat gerade 2222 Beiträge.
[/OT]

Assarbad 16. Apr 2012 21:46

AW: Lokalen Netzwerktraffic "mithören" / Programm belauschen
 
Der Link ist leider falsch. Ich melde mal den Beitrag ;)

Code:
Vielleicht hilft [URL="das hier"]http://www.delphipraxis.net/137331-networktrafficmonitor-bug.html[/URL] weiter
Ansonsten wollte ich noch anmerken, daß die Komponente auf die Wireshark aufsetzt PCAP heißt und in Form einer Bibliothek für Win32 verfügbar ist: http://www.winpcap.org/

sx2008 18. Apr 2012 06:49

AW: Lokalen Netzwerktraffic "mithören" / Programm belauschen
 
Wireshark ist ein sehr mächtiges Werkzeug - man braucht mehrere Tage bis Wochen bis man sich darin eingearbeitet hat.
Du siehst jedes Datenpaket in einer Liste.
Wenn du ein Paket siehst, dass dich interessiert, dann kannst du im Kontextmenü "Follow TCP Stream" auswählen. (vorrausgesetzt es handelt sich um ein TCP Paket)
Wireshark setzt dann einen Filter und zeigt nur doch die Daten dieser TCP-Verbindung.

Ein andere Möglichkeit wäre sich mit IdTcpServer und IdTcpClient in Delphi einen transparenten Proxy-Server zu bauen.
Der Server lauscht dann z.B. auf Port 9999.
Dein Anwendung muss dann so umgestellt werden, dass sie localhost:9999 als Ziel annimmt.
Dein Proxyserver muss das echte Ziel kennen und leitet den Datenstrom einfach weiter.
Nebenbei speichert der Proxyserver die Daten in Logdateien, aber das merkt deine Anwendung nicht.
Dies funktioniert aber nur, wenn diese TCP-Verbindung der einzige Weg der Kommunikation ist.

Assarbad 18. Apr 2012 07:21

AW: Lokalen Netzwerktraffic "mithören" / Programm belauschen
 
@sx2008: danke. Das erinnert mich, daß ich LSPs zu erwähnen vergaß. Sind zwar nicht auf unterster Ebene aktiv wie Wireshark oder der Network Monitor von MS, aber dafür relativ bequem selber zu modifizieren. Wobei ich Wireshark ja seit einigen Jahren als durchaus bequem empfinde. Seit die diese unsägliche Gtk-Einheits-GUI durch eine passendere ersetzt haben, hat Wireshark auch auf meinen Systemen wieder Packetyzer (eine alternative GUI zu dem vormaligen Ethereal, sprich Wireshark) verdrängt.

Übrigens braucht es für das was du ihm vorschlägst keines Programmieraufwandes. Einfach netcat runterladen und benutzen reicht schon um einen Proxy wie du ihn beschreibst aufzuziehen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 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