PDA

Просмотр полной версии : WSPAccept или как поставить хук на подключение к серверу


Asmoday
13.06.2010, 17:26
Изначально брал за пример дллку из l2ph но основе ее попытался написать lsp провайдер. Установка и удаление проходит без ошибок. Даже получилось поставить хук на WSPAccept. Проблема лишь в том как сделаь перехват трафика? Есть у каво может наработки?

xkor
13.06.2010, 22:30
Asmoday, вариант первый: хукаем bind - узнаём на какой интерфейс и порт биндиться сокет, если биндимся на ненулевой порт то это скорее всего сокет для сервера, то есть нужный нам, поэтому подменяем порт на какойнить другой свободный и извещаем основное приложение о том что оно должно на исходном порту начать прослушку и при подключении клиента подключаться к новому порту перехватываемой программы.
вариант второй: хукаем recv и send и кладём хуй на то входящее соединение или исходящие, а просто отправляем все полученные/отправленные данные в основную программу, и принимаем назад обработанные данные.

первый вариант более быстрый скорее всего (хотя поизвращавшись можно и второй довести до такой же примерно скорости) и наверно немного попроще ибо не надо организовывать двунаправленый обмен командными данными между основной прогой и внедренной длл, достаточно однонаправленых посылок управляющих сигналов (уведомляющих о бинде)

Asmoday
13.06.2010, 22:50
Думал уж что пропустил темку потому постучался тебе в пм. Дело в том что ловлю конекты я как раз на сервере l2. В данном случае мне как раз необходимо обработать трафик который идет от клиента на сервер еще до того как его получит сам сервер, точнее необходимо немного изменить содержимое пакета. На сколько я понимаю придется писать dll-ку аналогичную используемой в l2ph. Но при этом хукать как ты сказал bind или как отвечал на сообщение в пм Accept.

Добавлено через 5 минут
И еще, верно ли я думаю что в принцыпе можно реализовать все не передавая данные вобще в приложение, а выполняя все "внутри" dll-ки?

xkor
14.06.2010, 01:15
И еще, верно ли я думаю что в принцыпе можно реализовать все не передавая данные вобще в приложение, а выполняя все "внутри" dll-ки?можно и тогда второй вариант с перехватом recv и send, будет намного удобнее, быстрее и проще)

arrjj
14.06.2010, 08:20
интересно вот а нельзя хуки повесить на то место клиента, где трафик уже расшифрованый(от сервера)/или еще не шифрованый(от клиента)?

xkor
14.06.2010, 11:22
arrjj, можно, и в соседних темах уже обсуждалось как)