Как конвертировать в строку и читать данные из пакета TCP - PullRequest
0 голосов
/ 11 апреля 2010

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

Ответы [ 2 ]

0 голосов
/ 11 ноября 2010

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

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

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

0 голосов
/ 15 апреля 2010

try "Encoding.BigEndianUnicode.GetString (tcp_pack.Data)"

...