Вопрос, связанный с UDP
2. Рутовый доступ есть ? Можно через iptables замутить перенаправление пакетов на другой порт.
Можно перехватить библиотечные вызовы с помощью LD_PRELOAD.
2. Программа, которую нужно написать, должна работать под виндой. И не требовать никаких знаний от пользователя.
Так сервер тоже под виндой ? Все равно его можно пропатчить. Найти вызов socket под отладчиком, и подменить параметр.
через raw sockets можно ловить что угодно
Я же сказал, что исходников серверной программы нет. Мало того, она проверяет свой checksum при запуске. Да и SO_REUSEADDR ставится не в socket а отдельной функцией.
Две проблемы. Первая заключается в том, что винда не всегда поддерживает SOCK_RAW. Вторая заключается в том, что под обычным пользователем в XP/2000 такой сокет создать нельзя.
Попробуй найти сорец одной из этих тварей, и адаптировать под свои нужды.
Да, я в курсе. Думал, может, есть методы проще. Видимо, либо SOCK_RAW, либо hook injection. И проще никак.
Оставить комментарий
kokoc88
Допустим, у нас есть сервер, который биндит UDP сокет без SO_REUSEADDR. Потом он отправляет броадкасты. Нужно написать пограмму, которая бы запускалась и до, и после запуска сервера, а так же позволяла бы получать эти самые броадкасты.Если эту программу написать так, чтобы она биндила сокет с SO_REUSEADDR на тот же порт, то она будет ловить броадкасты сервера. Конечно, при этом сервер нельзя будет запустить после запуска программы.
Есть ли другие решения?