Я не совсем уверен, с чего начать все это, но я предполагаю, что мне понадобится какой-то сетевой драйвер для захвата всего UDP-трафика. (Скажите, пожалуйста, какой из них лучше всего документирован и работает)
После того, как я успешно получу UDP-пакеты в C #, я буду отправлять их по TCP-соединению на мой сервер, на котором мне нужно отправить UDP-адрес получателю, а затем передать ответ BACK на клиентский компьютер ( это захватывает пакеты), а затем отправляет ответ программе, как если бы он был непосредственно с рассматриваемого сервера.
Так что в основном моя связь ниже:
Client running UDP program <<==TCP connection==>> Conversion Server <<==UDP connection==>> UDP Server
Очки, с которыми мне нужна помощь:
- Захват пакетов UDP из программ (с использованием сетевого драйвера)
- Отправка ответа, полученного с сервера, обратно в программы (используя тот же сетевой драйвер ????)
Редактировать # 1
Хорошо, позвольте мне уточнить. У меня есть программа на моем компьютере, которую я не могу контролировать. У меня нет его источника, нет способа изменить источник, и я не могу использовать методы инъекций, чтобы сказать ему делать что-то другое. И, конечно, он использует UDP для соединения с сервером, и мне нужно, чтобы это работало.
Теперь мне нужно, чтобы эта программа работала, однако я нахожусь в защищенной сети, которая не допускает UDP-трафик (не спрашивайте). Мне нужно создать сетевой драйвер, который будет перехватывать весь UDP-трафик, генерируемый ВСЕМИ программами на моем компьютере, отправлять его на выделенный сервер (в котором я бы закодировал демон сервера для преобразования TCP в UDP и отправил его на пункт назначения).