Având în vedere a .pcap
(sau similar), aș dori să selectez o conexiune TCP și să arunc ambele fluxuri de date ale aplicației (cel din celălalt egal și celălalt Două celălalt peer) în două fișiere separate de pe disc.
Să presupunem că am un .pcap
fișier care, printre altele, știu că conține un flux TCP complet (de la SYN la final FIN+ACK/RST) al unei conexiuni HTTP/1.1 text simplu. Aș dori să am două fișiere rezultate cu conținut. ie. un fișier are
GET / HTTP/1.1\r\n
gazdă: foobar.com\r\n
\r\n
iar celălalt dosar are
HTTP/1.1 200 ok\r\n
lungimea conținutului: ...\r\n
... \r\n
\r\n
<html>...</html>
Și vreau ca acesta să fie exact traficul de date aplicației care ar fi fost văzut/trimis în spațiul utilizatorului (de la citit
/scrie
/trimite/
recv`/...). Ceea ce vreau să fac cu asta este să arunc ceva trafic și să-l folosesc pentru a-mi testa analizatorii pentru un anumit protocol de rețea. Analizatorul ar trebui să fie capabil să citească unul dintre acele fișiere și să încerce să analizeze fluxul de date.
Cum ar putea arăta un astfel de instrument de linie de comandă? Nu sunt sigur dacă acest lucru este foarte util, dar m-am gândit că ar putea clarifica ceea ce caut dacă aș da și un exemplu de utilizare a unui instrument imaginar care poate face acest lucru.
Să numim instrumentul imaginar (acesta este ceea ce caut) tcp-stream-extract
. Aș vrea să-l numesc cu ceva de genul
tcp-stream-extract \
-i my-captured-packets.pcap
-s 127.0.0.1:12345 \
-d 127.0.0.1:23456 \
-t '2021-01-28 09:12:00Z' \
-w de la-port-12345-la-port-23456
tcp-stream-extract \
-i my-captured-packets.pcap
-s 127.0.0.1:23456 \
-d 127.0.0.1:12345 \
-t '2021-01-28 09:12:00Z' \
-w de la-port-23456-la-port-12345