Autor Beitrag
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 15.08.05 17:57 
Moin!

Ich bin gerade dabei, meinen selbstgeschriebenen Netzwerkmonitor nochmal völlig zu überarbeiten.
Ein Feature um das mich jetz schon mehrere gebeten haben und das auch eigentlich wirklich wichtig wäre, macht mir allerdings kopfzerbrechen...

Das Programm sollte nämlich irgendwie automatisch zwischen LAN-Traffic und echtem Internet-Traffic unterscheiden können. Bisher hatte ich das ja so notdürftig mit einem Bandbreitenfilter gelöst, aber im Studentenwohnheim mit Breitbandanschluss funktioniert das auch nicht mehr.

Was ich also bräuchte wäre im Optimalfall irgendeine Art von Gateway-Filter, der nur Traffic zählt, welcher über eine bestimmte IP geforwardet wurde.
Alternativ ginge natürlich auch so etwas wie mir z.B meine Firewall anzeigt, also eine Aufsplittung des Traffics auf einzelne Anwendungen, damit sich der User dann seine Internetanwendungen rauspicken kann.

Nach einigen Stunden suche in Google und MSDN hab ich jetzt aber leider immernoch keinen brauchbaren Ansatz gefunden.
Vielleicht kann mir ja hier jemand helfen.

Schonmal THX im Voraus!
Brainiac
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mo 15.08.05 18:05 
mir fällt im usermode nur die möglichkeit ein per API hook den traffic mitzudokumentieren

dazu musst du dann in jede anwesung eine DLL laden die alle APIs hook die für eine internetverbindung benutzt werden können und einzelnd die daten speichern, bzw an die hostanwesung (deine exe) schicken

apihooking: uall.overclock.ch/uallCollection.zip

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 15.08.05 18:31 
Hm... also wenn das tatsächlich die einzige Möglichkeit sein sollte, dann lasse ich es natürlich lieber.
Mal abgesehen von dem Aufwand würde das auch viel zu viel Overhead verursachen um dann noch als kleines Tool zu laufen.

Naja... für weitere Vorschläge bin ich nach wie vor offen. :D
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 15.08.05 20:10 
user profile iconuall@ogc hat folgendes geschrieben:
mir fällt im usermode nur die möglichkeit ein per API hook den traffic mitzudokumentieren
Nebenfrage: Machen dass Firewalls eigentlich auch so?
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 15.08.05 20:14 
user profile iconBrainiac hat folgendes geschrieben:
user profile iconuall@ogc hat folgendes geschrieben:
mir fällt im usermode nur die möglichkeit ein per API hook den traffic mitzudokumentieren
Nebenfrage: Machen dass Firewalls eigentlich auch so?

Suche bei Google NETLIMITER macht das so
die firewalls haben normal nen treiber auf den ein service zugreift
du könntest das auch machen wenn du den Suche bei Google WINPCAP treiber einsetzt.
nachteil an der treiberlösung: ein neustart ist erforderlich

//Edit: @uall du könntest ja mal nen winsock-hook demo beilegen, das war äusserst interessant

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 16.08.05 08:28 
user profile iconretnyg hat folgendes geschrieben:
Suche bei Google NETLIMITER macht das so
Nettes Programm... eigentlich genau das, was meins auch können sollte.
Mir ist nur leider nicht ganz klar, was du mit "mach das so" meinst, denn ich weiß ja nicht, wie die's genau gemacht haben. :wink:

WinPCap hab ich mir angesehen. Allerdings können gleich bei mir auf dem System schonmal keine Adapter gefunden werden, was dann meinen ersten Eindruck doch sehr gedämpft hat. Und das einzige Delphi Projekt, dass ich damit gefunden habe, wirft mir sogar gleich noch einen Runtime-Error vor die Füße.

...
Also irgendwie kann ich immernoch nicht glauben, dass es zu der ganzen Geschichte keine einfachere Lösung geben soll.
Windows selbst muss doch auch irgendwie Statistik über seine Verbindungen führen und da muss man sich doch irgendwie einklinken können... :eyes:
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Di 16.08.05 14:42 
hab mal was versucht
nicht anmeckern wenn der PC crashed ;P
Einloggen, um Attachments anzusehen!
_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Di 16.08.05 14:53 
sehr schön ^^
das selbe noch auf ws2_32.dll zusätzlich und nur in prozesse injizieren (edit: vielleicht mit readprocessmemory), die eine der beiden DLL's geladen haben, und das teil ist perfekt

edit: wie könnte man rausfinden mit welcher ip kommuniziert wird ?
ahja, müssts man noch die funktionen hooken, die die verbindung herstellen

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 16.08.05 15:21 
Hatte nur in einer etwas älteren Version von dem Programm ein Problem beim Beenden dass jegliche Programme, die das Netzwerk genutzt haben, gecrasht sind. AFAIK ist der Bug aber inzwischen behoben ;-)

Ansonsten absolut genial ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.08.05 12:06 
Naja... also ich hab mein überarbeitetes Tool halt noch erstmal ohne diese Funktion gemacht.
Neue Version ist jetzt online... wer sich's ansehen will:
www.brainiactools.ne...iacTools%20net-Meter

Das Beipiel von uall hab ich mir angesehen. Also wenn ich mal richtig Zeit hab, dann setze ich es vielleicht in einer Sonderversion um und mache meine jetzige zur Light-Version. Jedenfalls schon mal vielen Dank.
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 19.08.05 08:23 
@uall: Hab mir dein Programm mal genauer angesehen... also schonmal reschpekt dafür.

Allerdings ist es natürlich schon jetzt relativ viel für einen Neueinsteiger bei API-Hooks, zumal ich den Code für meine Anwendungen garantiert noch modifizieren müsste.
Hättest du vielleicht irgendwelche Quellenlinks oder Tutorials über die du das gelernt hast, was du jetzt in deinem Projekt anwendest?