Asmoday, вариант первый: хукаем bind - узнаём на какой интерфейс и порт биндиться сокет, если биндимся на ненулевой порт то это скорее всего сокет для сервера, то есть нужный нам, поэтому подменяем порт на какойнить другой свободный и извещаем основное приложение о том что оно должно на исходном порту начать прослушку и при подключении клиента подключаться к новому порту перехватываемой программы.
вариант второй: хукаем recv и send и кладём хуй на то входящее соединение или исходящие, а просто отправляем все полученные/отправленные данные в основную программу, и принимаем назад обработанные данные.
первый вариант более быстрый скорее всего (хотя поизвращавшись можно и второй довести до такой же примерно скорости) и наверно немного попроще ибо не надо организовывать двунаправленый обмен командными данными между основной прогой и внедренной длл, достаточно однонаправленых посылок управляющих сигналов (уведомляющих о бинде)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
|