Изменение входящей и исходящей связи UDP - PullRequest
0 голосов
/ 25 февраля 2011

Каков наилучший способ чтения, изменения и повторной отправки сообщений UDP?

Например, у меня есть серверное приложение, которое сообщает главному серверу, что оно живо, отправляя пакет через UDP на порт 3209. Оно отправляет сообщение «Я жив, мой ip - xxx.xxx.xxx.xxx, и у меня сейчас 3 клиенты соединились со мной. " Затем главный сервер отвечает: «Здравствуйте, xxx.xxx.xxx.xxx, я вас там вижу».

Каков наилучший способ передачи MITM (Man In The Middle) сервера на главный сервер? Я хотел бы иметь возможность изменить «Я жив» на что-то вроде «Я изменился» или даже «В настоящее время 3 клиента подключены» на «В настоящее время 0 клиентов подключено»

При попытке сделать новый UdpClient для порта, на котором работает сервер, я получаю исключение «Только одно использование каждого адреса сокета (протокол / сетевой адрес / порт) обычно разрешено».

Ответы [ 4 ]

0 голосов
/ 27 февраля 2011

В итоге я написал программу для прослушивания порта, на который отправлял сервер.Затем я пересылаю все данные на главный сервер с измененными значениями, которые мне нужны.Когда главный сервер ответил, я отправил эти данные клиентскому приложению.Ни сервер, ни клиентское приложение не знают, что сервер посередине изменяет данные.

Спасибо за все ответы!

0 голосов
/ 25 февраля 2011

Вы должны сделать две вещи:

  1. Откройте для себя реальный протокол межсерверная связь. Они есть общаться по UDP, но структура данные передаются не сетевой протокол. Вам следует обнаружить структуру данных перенесено между серверами

  2. Определитесь, на чьей стороне вы собираетесь работать с пакетами. Если вы на одна из сторон сервера, вы можете драйвер фильтра записи, который будет изменить данные, прежде чем это будет отправка или до того как будет получение по заявке. Если ты не в сербской части я не знаю Горячий перехват сетевых пакетов

0 голосов
/ 25 февраля 2011

UDP не имеет встроенной защиты и не ориентирован на соединение, поэтому в этом случае это будет намного проще.

Вы можете подделать исходный IP-адрес в IP-пакете (без особых проблем это сделать) и просто прослушатьUDP-пакеты отправляются на реальный IP-сервер.Основная проблема здесь состоит в том, чтобы избегать главного сервера для получения реальных пакетов от реального клиента.Для этого вам придется вмешаться в схему маршрутизации, что не очень легко сделать ...

0 голосов
/ 25 февраля 2011

вы имеете в виду анализ пакетов ?

...