2017-10-26 2 views
1

Ich habe einen einfachen Instant Message Chat Client und Server auf TCP erstellt, die beide von Adobe AIR ausgeführt werden. Es funktioniert großartig und es war eine interessante Möglichkeit, grundlegende Netzwerkprogrammierung zu lernen.Kann ich Pakete von meinem Server bearbeiten, bevor sie meinen Client erreichen?

Meine Frage: Ist es möglich, die Daten in dem Paket zu ändern, das vom Chat-Server gesendet wird, bevor es den Client erreicht, ohne den Server oder Client dafür zu verwenden? Wie vielleicht ein Programm?

Ich bin neu in der Netzwerk-Programmierung, also entschuldige ich mich, wenn das eine dumme Frage ist.

+0

Dies ist komplizierter als es scheint. TCP hat eine CRC, die neu berechnet werden muss, wenn Sie etwas in dem Segment ändern. Die CRC verwendet auch den Pseudo-Header. Wenn Sie im Paketheader eines IPv4-Pakets etwas ändern, muss die IPv4-Header-Prüfsumme neu berechnet werden. Wenn Sie dies in einem IEEE-LAN-Frame ändern, muss der FCS neu berechnet werden. –

Antwort

2

Ihre Frage ist sehr breit. Die Antwort ist also breit. Ja. Es ist möglich.

Dafür müssen Sie die Pakete zwischen dem Client und dem Server erhalten, um ein drittes Programm zu durchlaufen. Es gibt viele Möglichkeiten, das zu erreichen. Hier ist eine nicht erschöpfende Liste:

Erstens, auf Ihren eigenen Maschinen (Client/Server) können Sie Zugriff auf das Paket vom Betriebssystem mit verschiedenen Low-Level-APIs. Zum Beispiel iptables+nfqueue in Linux oder Windows Filtering Platform on Windows.

Zweitens können Sie Zugriff auf die Pakete erhalten, indem Sie sie absichtlich über einige proxy program kommunizieren, die sich möglicherweise auf demselben Server wie der Client oder der Server befinden.

Drittens könnten Sie Zugriff auf die Pakete erhalten, indem Sie sie vom Netzwerk selbst abholen. Zum Beispiel könnten Sie einen Linux-Rechner als Router einrichten und ihn zwischen dem Client und dem Server platzieren lassen (solange sich diese nicht auf demselben Computer befinden). Diese Linux-Maschine hat nun Zugriff auf alle Pakete, die sie durchlaufen, und sie kann sie an verschiedene Benutzer-Space-Programme übergeben, indem sie Hooks wie die zuvor erwähnte nfqueue verwendet.

Verwandte Themen