|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.08.2014, 13:25 | #1 |
Пользователь
Регистрация: 26.05.2011
Сообщений: 22
|
Как расшифровать UDP пакет
Здравствуйте.
Средствами C# получаю UDP пакет... Пытаюсь прочитать его методом: Код:
Содержание пакета отображено (через сторонний сниффер вскрыл его) на картинке в области под номером 1. Хотел поинтересоваться, как мне прочитать-распарсить этот пакет ? Например получить значение выделенное синим в области 1 ? P.S: a) На скриншоте: под номером 3 программа, которая также получает эти пакеты и предстваляет их в читабельном виде. С Уважением Павел... |
19.08.2014, 13:57 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А структура пакета тебе известна?
I'm learning to live...
|
19.08.2014, 15:07 | #3 |
Пользователь
Регистрация: 26.05.2011
Сообщений: 22
|
Я ранее нашёл исходник скрипта на питоне:
https://gist.github.com/trhura/5998584 Написано, что он действует аналогично программе изображенной под номером 3 на скриншоте. Внутри скрипта я вижу, что какой-то разбор пакета производится, но это архисложно для моего восприятия... Единственное, что смог на его основе это отловить пакет по портам указанным в нём.... С Уважением Павел... |
19.08.2014, 15:27 | #4 |
Пользователь
Регистрация: 01.08.2014
Сообщений: 66
|
...накапливайте буфер, парсите на предмет набора нужной последовательности байт. Если есть возможность отловить начало пакета для синхронизации, еще лучше, тогда можно плавающим окном бегать по набору.
|
19.08.2014, 16:27 | #5 | |
Пользователь
Регистрация: 26.05.2011
Сообщений: 22
|
Цитата:
Я просто не знаю с какой стороны подойти. Вот, например, у меня есть принятый пакет в nReceived тип int. Можно как-нибудь конвертировать его полностью в читабельный (получитабельный) текст ? Например, на скриншоте, под цифрой 2 - вывод с закладки Data, результат работы сниффера. Т.е снифер как-то вывел (может быть, как часть UDP пакета) эту строку... С Благодарностью Павел... |
|
19.08.2014, 16:57 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
22.08.2014, 14:12 | #7 | |
Пользователь
Регистрация: 26.05.2011
Сообщений: 22
|
Цитата:
Я пробовал Код:
Единственное, с помошью Код:
Также пытался конвертировать отдельные байты (средствами Код:
Эксперементировал, гуглил - не могу понять... Может быть есть статья, где расписано просто и доходчиво об этом ? С Уважением Павел... |
|
30.08.2014, 13:08 | #8 |
Пользователь
Регистрация: 26.05.2011
Сообщений: 22
|
Решение
Здравствуйте,
В итоге мне удалось получить нужную информацию из UDP пакета. Насколько я могу судить по результату - нужная информация расположена между сигнальными байтами. Думаю об этом мне и советовали выше (про структуру и набор нужной последовательности байт). Просто я не полностью понимал о чём речь. (не сталкивался ранее с подобным). Подумал над советами форума, повникал в исходники скрипта на питоне (https://gist.github.com/trhura/5998584), проинспектировал вывод сниффера (на картинке выше область 1). И в итоге пришел к выводу (далее по картинке, область 1), что, например, информация о типе устройства (значение выделенное синим в области 1) - "TSW-PoE", размещается в байтах UDP пакета всегда после трёх байтов 0С 00 07. При этом (опираясь на иформацию полученную из исходников скрипта на питоне) я выяснил, что: два байта 0С 00 - это флаг начала строки с типом устройства, один байт 07 - это длина строки (тип устройства) в байтах. В итоге, для получения строки с типом устройства ("TSW-PoE") из байт UDP пакета был рождён нижеследующий код: Код:
Возможно я что-то упустил (или где-то ошибся) по неграмотности, но в целом буду рад, если этот пост сэкономит кому-нибудь время гугления. С Благодарностью Павел... |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не доходит UDP пакет | Loginef | Помощь студентам | 9 | 12.07.2013 13:15 |
Как отправить UDP пакет | Larboss | Работа с сетью в Delphi | 0 | 20.10.2011 21:30 |
Скопировать и послать udp-пакет | Riply | Работа с сетью в Delphi | 8 | 17.02.2011 15:51 |
UDP клиент-сервер. Пакет | neon2k | Общие вопросы .NET | 1 | 27.06.2010 11:53 |
расшифровать в ASCII потом цифры расшифровать в бинарный код | viorel | Общие вопросы Delphi | 1 | 07.05.2010 14:43 |