Как конвертировать в строку и читать данные из пакета TCP

Я использовал sharppcap для захвата пакетов TCP. Теперь я хочу восстановить HTTP-пакет из TCP-пакетов, но я не знаю как. Я где-то читал, что могу найти начало HTTP-пакета в данных TCP... Я попытался преобразовать данные TCP byte[] в строку, используя этот код: string s = System.Text.Encoding.UTF8.GetString(tcp_pack.Data); но строка не читается. как бинарный файл, который открывается с помощью блокнота. потому что данные зашифрованы или код неверный? Как я могу восстановить HTTP-пакет из TCP-пакетов?

2 ответа

Попробуйте "Encoding.BigEndianUnicode.GetString(tcp_pack.Data)"

Нет простого способа сделать это, потому что вам нужно будет восстановить сеанс TCP в памяти.

По сути, если отправляемое сообщение больше одного пакета, оно разбивается на несколько пакетов. Поэтому вам нужно будет захватить эти пакеты, расположить их в правильном порядке и собрать данные вручную.

Если сообщение короткое / простое и не разбито на несколько частей, вам необходимо выяснить, в каком формате находится полезная нагрузка. Сначала попробуйте декодировать в ASCII.

Другие вопросы по тегам