Hook auf TCP-Verbindung setzen!

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

    Hook auf TCP-Verbindung setzen!

    Hallo gleich mal um vorzubeugen das jemand was falsches denkt: Ich will nichts illegales machen!!

    Mein Anliegen ist es auf eine bestehende TCP Verbindung ein Hook zu setzen, um in dieser "mitzuhören" denn so kann ich wesentlich einfacher speziell eine verbindung abhören und die daten auswerten und darstellen!

    Es geht darum, dass ich ein programm habe, was als ergänzendes tool arbeiten soll und dafür möchte ich auf eine offene TCP verbindung den hook setzen... kann mir einer sagen wie ich sowas mache? (habe mir schon die tuts für die Tastaturhooks angeschaut..)

    mfg
    Soll das Programm eine Programm-eigene TCP-Verbindung abhören, oder die eines anderen Programmes ?

    Wenn letzteres , dann gibt es dazu Network-Monitor und/oder Wireshark (auch portable). Aber auch die setzten keinen Hook, sondern protokollieren nur. D.h. Du kannst zuhören aber nichts einsetzten oder verändern. Network Monitor ist vielleicht etwas anfängerfreundlicher, Wireshark etwas mächtiger.

    Hmm, und dann gibts es natürlich noch raw Sockets , die Microsoft allerdings stark entschärft hat.
    Ok noch als infos ;) ich hatte das ganze schonmal mit einem .net sniffer gemacht, nur ist da dann das problem, das ich das programm für was die daten bestimmt sind , nicht manipulieren kann (d.h. ich brauche einen hook). Denn ich will die Daten von dem Server in meinem eigenen Programm auswerten, dann wenn es sein muss anpassen und schließlich wieder an das zielprogramm weiterleiten, so erreiche ich dann das auch dieses programm alles korrekt anzeigt und kann später evlt mein programm dann konsolenbasierend (also ohne gui) schreiben, und hab so weniger cpu last, was denke ich mal hochschießen wird wenn ich dafür ein gui baue...
    Also: An den Sourcecode von dem Programm komme ich gar nicht ran ^^( habe dieses ja nur als exe vorliegen) es handelt sich um einen Server im Internet, der mit einem Client (über eine TCP verbindung auf dem Port 8080) kommuniziert! In diese Verbindung will ich mich nun einklinken, die Daten vom Server auswerten, und gegebenenfalls für den Client so bearbeiten, das dieser andere anzeigen produziert etc., eine eingeschobene Instanz also die als Verwaltungsprogramm agiert (jedoch nur die Daten vom Server manipulieren soll, nicht die die wieder an den Server gesendet werden)

    Bisher habe ich noch keinen Ansatz (außer mein Zwischenprogramm, also die Datenverarbeitung) was fehlt ist halt die Möglichkeit diese Verbindung über mein Programm umzuleiten.
    Dann kommt es darauf an, ob das Server-Programm Mechanismen vorsieht einen (lokalen) Proxy anzusprechen:

    Server - Proxy Konfiguration exisitiert -> OK
    Server nimmt Default-IE Proxy -> OK

    Ansonsten -> Pech ;)

    Edit: mal eben geschaut ob es mittlerweile eine Alternative zur WinSocket Implementierung gibt, aber sieht nicht so aus
    Einzige Alternative ist der Netmon Driver, aber der protokolliert auch nur

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kangaroo“ ()

    Danke schonmal :) also so wie ich das deiner aussage entnehme habe ich kein pech gehabt (Server nimmt Default-IE Proxy -> OK) ^^ geht anscheinend... nur jetzt muss ich mal schauen wie ich das hinbekomme ^^ geht das was ich vor hab mit winsocket?
    Im IE oder FF gibts Du ja für eine lokale Proxy localhost:xxxx an, wobei die xxxx für den Port des lokalen Proxies stehen.

    Also denke ich musst Du nur mit .Net Sockets den Verkehr auf xxxx abfangen und dann für deinen Server auf 8080 weiterleiten ...
    mhh ich glaube mit sockets geht das nicht... denn die Verbindung besteht ja bereits... und da kann ich auch nicht einfach eine eigene zum server aufbauen... ich will ja, dass man den Client wie gehabt benutzen kann, nur der komplette datenverkehr umgeleitet wird über mein Programm...

    EDIT: Die verbindung zum Server wird von dem Client aufgebaut... kann ich da evtl. diesen Verbindungsversuch abfangen, und dann an den Server weiterleiten?
    Ok, dann muss ich das Programm zuerst starten, auf den Verbindungsversuch vom client warten und dann an den Server weiterleiten (da kann ich ja eigentlich eine art straße (dauerhaften Durchfluss) einrichten ) Die Daten die dann vom Server kommen, die müsste ich dann ja auswerten und verändern... Ich probier das nacher mal ^^ aber nach dem Deutschlandspiel :) Danke für deine Mühe und deine Ideen :)