Есть ли библиотека для разбора/форматирования TCP-пакетов или что-нибудь, что могло бы помочь в этом?

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

Итак, я жестко занимался парсером, где я делаю такие вещи, как:

<packet id="0x01" name="undefined">
    <part name="userID" type="d"/>
</packet>

Где d для десятичного числа и получит 4 байта.

Моя цель - сделать что-то вроде этого: packet parsed

А под ним список с именем пакета как root и именами частей внутри с их значением.

Я огляделся и нашел библиотеки для прослушивания данных и т. д., но на самом деле я искал что-то, что помогло бы мне разобрать/отформатировать их, есть ли такие поблизости?


person Prix    schedule 26.05.2011    source источник
comment
какой протокол вы пытаетесь пронюхать?   -  person Yaur    schedule 27.05.2011
comment
@Yaur TCP, как говорится в заголовке, если это не имеет особого значения, это просто приложение С#, которое TCP-сокет для сервера в С#.   -  person Prix    schedule 27.05.2011
comment
Я не имею в виду, какой транспортный протокол, я имею в виду, какой протокол уровня приложения. Это может быть что-то вроде HTTP, RDP и т. д.   -  person Yaur    schedule 27.05.2011
comment
@Yaur не совсем уверен, как это сказать, я не так уж много разбираюсь в этом, и я действительно не думаю, что это имеет значение в отношении того, как его форматировать и анализировать .... Все, что я сделал, это базовый клиент / сервер с аутентификацией в c # и хочу понюхать его для изучения, что я делаю с помощью wireshark, но вывод довольно сложен для понимания, просто глядя, и я хотел бы его отформатировать.   -  person Prix    schedule 27.05.2011


Ответы (1)


То, что вы ищете, это декодированные пакеты, к сожалению, с точки зрения TCP то, что вы ищете, уже является декодированным пакетом.
Чтобы получить дополнительную информацию, вам нужен анализатор протокола, который работает с протоколом более высокого уровня. Для готовых протоколов такой диссектор, вероятно, уже существует, но если вы создали свой собственный протокол, вам также потребуется создать собственный диссектор. Существует руководство по codeproject по созданию пользовательского диссектора для wireshark, которое должно вам помочь начните, если вы хотите пойти по этому пути.

person Yaur    schedule 27.05.2011