PDA

Просмотр полной версии : Алгоритм работы


q1NeX
03.05.2009, 20:51
Здравствуйте. Немного ботский вопрос к разработчикам программы.

Скачал исходники версии 3.2, немножко покопался.. Насколько я понял, inject.dll перенаправляет connect на себя, сам устанавливает коннект с сервом, перенаправляет туда пакеты (т.е. работает как прокси) и заодно их снифает. Верно? Просто не вижу других причин для перехвата именно функции connect. В ином случае, на мой взгляд, перехват recv более перспективен, т.к. не ограничивает время инжекта вызовом connect..

И, если не сложно, не могли бы вы указать место, на которое вставляется jmp в функции connect (всмысле имя функции, метки, модуль..)?

Зараннее спасибо.

alexteam
03.05.2009, 21:05
в принципе абсолютно аналогично.
но, спешу сразу огорчить, рецв и сенд снимаются ГГ.
коннект как бы не снимался ранее, не знаю как сейчас.
в общем тема уже подымалась на этом форуме.
http://coderx.ru/showthread.php?t=1328

Добавлено через 9 минут
ой, протупил... забыл ответить на основной вопрос.

собственно в самой дллке
сразу в входе выполняется

if not HookProc('ws2_32.dll', 'connect', @ConnectHookProc, @ConnectNextHook) then
HookProc('wsock32.dll', 'connect', @ConnectHookProc, @ConnectNextHook);

ставящий в коннект джамп на ConnectHookProc
в ConnectHookProc последняя строчка - вызов оригинального коннекта.
result:=ConnectNextHook(s, Name, namelen);

q1NeX
04.05.2009, 16:39
Спасибо за ответ. Извиняюсь за распложение тем, вроде темы просматривал.. Сейчас почитаю ту темку.