Учитывая .pcap
(или аналогичный) файл, я хотел бы выбрать одно TCP-соединение и вывести оба потока данных приложения (тот, от другой сверстник и один два другой одноранговый узел) в два отдельных файла на диске.
Предположим, что у меня есть .pcap
файл, который, среди прочего, содержит полный TCP-поток (от SYN до финального FIN+ACK/RST) открытого текстового соединения HTTP/1.1. Я хотел бы иметь два результирующих файла с содержимым. Т.е. один файл имеет
ПОЛУЧИТЬ/HTTP/1.1\r\n
хост: foobar.com\r\n
\r\n
а в другом файле есть
HTTP/1.1 200 ок\r\n
длина содержимого: ...\r\n
... \р\п
\r\n
<html>...</html>
И я хочу, чтобы это был именно тот трафик данных приложения, который был бы виден/отправлен в пользовательском пространстве (от читать
/записывать
/Отправить/
recv`/...). Что я хочу сделать с этим, так это сбросить некоторый трафик и использовать его для проверки моих синтаксических анализаторов для определенного сетевого протокола. Парсер должен просто иметь возможность прочитать один из этих файлов и попытаться проанализировать поток данных.
Как может выглядеть такой инструмент командной строки? Я не уверен, что это очень полезно, но я подумал, что это может прояснить, что я ищу, если я также приведу пример использования воображаемого инструмента, который может это сделать.
Назовем воображаемый инструмент (это то, что я ищу) TCP-поток-извлечение
. Я хотел бы назвать это чем-то вроде
### воображаемый пример использования инструмента, который я хотел бы найти :)
# дамп с 12345 по 23456
TCP-поток-извлечение \
-i мои-захваченные-пакеты.pcap
-s 127.0.0.1:12345 \ # адрес источника 127.0.0.1:12345
-d 127.0.0.1:23456 \ # адрес назначения 127.0.0.1:23456
-t '2021-01-28 09:12:00Z' \ # на тот момент соединение TCP было активным
-w с порта-12345 на порт-23456
# дамп с 23456 по 12345
TCP-поток-извлечение \
-i мои-захваченные-пакеты.pcap
-s 127.0.0.1:23456 \ # адрес источника 127.0.0.1:12345
-d 127.0.0.1:12345 \ # адрес назначения 127.0.0.1:23456
-t '2021-01-28 09:12:00Z' \ # соединение TCP было на тот момент
-w с порта-23456 на порт-12345