Seite 1 von 2

Virtuelle Netzwerkkarte

Verfasst: 16.08.2007 22:41
von Daniel P.
N'Abend - hätte da mal eine kleine Frage. Ist es möglich, eine virtuelle Netzwerkkarte zu programmieren (Sprache lasse ich mal außen vor) und wenn ja, wo finde ich Infos darüber? Ich würde mir gerne einen virtuellen Netzwerkadapter basteln, der alles, was der Computer nach "draußen" sendet abfängt und verarbeitet. Momentan ist das nur eine reine Interesse-Frage ala "nice to know"; es soll keine Pseudo-Firewall oder ein Virenscanner werden :mrgreen:

Ich hab schon etwas gegooglet und bin ein paar mal auf den LoopBack-Adapter gestoßen. Der steuert IMHO aber nur die interne (localhost) TCP/IP-Kommunikation und kann zum Abfangen der Daten nicht verwendet werden. Oder denke ich momentan zu kompliziert (ist ja schon spät) und es gibt einen einfacheren Weg, ausgehende Verbindungen abzufangen und zu verarbeiten?

Verfasst: 17.08.2007 07:48
von Deeem2031
Du kannst einfach WinPcap benutzen, das gibt dir genau das, was du willst. Die Tutorials dafür gibts sogar übersetzt für PB: http://www.purebasic.fr/german/viewtopic.php?t=8910

Verfasst: 17.08.2007 20:20
von Daniel P.
Hm, interessant. Zwar nicht exakt das, wonach ich gesucht habe, aber es bringt mich schon mal einen Schritt weiter :wink:

Dankschön :allright:

Verfasst: 18.08.2007 18:36
von Daniel P.
Hätte da noch eine Frage zu WinPcap: Ist es möglich, Pakete abzufangen und umzuleiten? Sprich das Paket sollte ursprünglich an Computer A gehen, soll nun aber an Computer B gesendet werden und das gleiche Spiel zurück. Dazu habe ich in der Doku nach kurzem Leses nämlich nichts gefunden. Ein- und -ausgehende Daten lassen sich filtern, manipulieren auch? Sind das nicht Raw-Socket-Funktionen, die es seit Windows XP SP2 aus sicherheitsgründen nicht mehr gibt? Sowas bräuchte ich nämlich ... hoffentlich liest Herr Schäubles Bundestrojander nicht mit <)

[edit]
WinPcap receives and sends the packets independently from the host protocols, like TCP-IP. This means that it isn't able to block, filter or manipulate the traffic generated by other programs on the same machine: it simply "sniffs" the packets that transit on the wire. Therefore, it does not provide the appropriate support for applications like traffic shapers, QoS schedulers and personal firewalls.
Hab mir die Frage mal selbst beantwortet. Gibt's dafür keine Lösung? :freak:

Verfasst: 19.08.2007 15:29
von K.Putt
Rechner A und B in einem LAN?

Verfasst: 19.08.2007 15:43
von Coder Pinhead
Also VirtualBox ist ja ein Open Source Emulator um andere Systeme auf seinen System zu Emulieren. Evtl findest du ja dort im Source Code die lösung auf deine Antwort ;)

Verfasst: 19.08.2007 18:40
von Daniel P.
Also ich hab mir den Code mal angeschaut, aber IMHO machen dessen Netzwerk-Funktionen das gleiche wie WinPcap. Ich glaub WinPcap wird da sogar irgendwo inkludiert, zumindest gibt es ein paar Kommentare, die darauf hinweisen.

Ich habe mich mit "virtueller Netzwerkkarte" glaube ich falsch ausgedrückt bzw. wusste ich, als ich den Thread aufmachte, nicht genau, wie man diese Traffic-Umleitung realisieren soll als über einen eigenen Netzwerk-Adapter, was aber IMHO totaler Schwachsinn ist. Deswegen erklär ich mal, was mein Problem ist oder meine Überlegung:

Ich habe in einem Netzwerk 3 Rechner (A, B, C). Nun möchte der Rechner A Daten an Rechner B schicken. Diese Daten sollen aber direkt auf Rechner A abgefangen und an Rechner C gesendet werden, der sie verarbeitet und dann an Rechner B schickt. Die Antwort geht von Rechner C an B und von dem zurück nach A. Eigentlich ähnlich, wie bei einer Tunnel-Software.

Die Frage ist halt, wie ich das Abfangen der Daten bewerkstellige. Denn WinPcap kann die Daten nur "sniffen", nicht aber Manipulieren und damit umleiten. Dieses Umleiten lässt sich IMHO mit Raw Sockets realiseren. Das wurde aber in Windows XP ab SP2 aus Sicherheitsgründen eingeschränkt, da man (vor allem Viren, Trojaner & Co.) damit Unfug treiben kann. Was ich jetzt noch über Google gefunden habe, wäre ein Hook zu programmieren, der sich, ich hoffe ich sage jetzt nichts falsches, vor oder in den NDIS-Treiber von Windows reinschiebt. Der verarbeitet den ein- und ausgehenden Netzwerkverkehr und sitzt direkt vor dem MAC-Treiber, der die Netzwerkkarte ansteuert. Aber ich finde kaum Informationen, wie man sowas anstellt. Ich weiß nicht mal, ob ich vielleicht zu kompliziert denke und es einen einfacheren Weg gibt...

Verfasst: 19.08.2007 20:23
von K.Putt

Verfasst: 19.08.2007 21:28
von Daniel P.
Hm, im Grunde ist es das - ABER :mrgreen:

Ich möchte nicht den Datenverkehr zwischen 2 Computern abhören bzw. manipulieren, sondern die Daten bereits auf Computer A, kurz bevor sie den Rechner verlassen, umleiten auf Computer C, der sie dann an B schickt, wo sie eigentlich hin sollten. Tust du verstehn tun was ich meinen tu? <)

Code: Alles auswählen

Normal:

Computer A ===== Computer B


Manipuliert:

Computer A ----- Computer B
   =                =
   =                =
   =                =
   =                =
   =                =
   === Computer C ===
Zwischen Computer A und B steht kein Rechner, der die Daten abfängt. Das soll schon softwareseitig auf Computer A geschehen, der die Daten, anstatt nach B, zunächst zu C und der dann zu B sendet. C fängt die Daten nicht ab, sondern tut sie lediglich weiterleiten...

Verfasst: 19.08.2007 22:11
von K.Putt
Und wozu soll das dann gut sein, dann schick diese doch gleich an B ???
Wenn Du die Daten zwischendurch durch C weder manipulierst, noch abfängst, wozu dann überhaupt C...