Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2010, 17:05   #1
0lorin
Новичок
Джуниор
 
Регистрация: 01.10.2010
Сообщений: 2
По умолчанию hook на сетевые функции (send, recv)

Здравствуйте.
Есть необходимость узнать, что у пользователя в браузере. Добрый человек на хабре подсказал поставить ловушку на сетевые функции. В WinAPI, как и в c++ вообще, я мало соображаю, но гугл рулит. Методом копипаста получилась такая штука:
Код:
int WINAPI recv_hook(SOCKET s, char* buf, int len, int flags) {
    // Вызываем настоящую
    int nResult = ((PFNRECV)(PROC) g_recv)
        (s, buf, len, flags);
    std::string buffer=buf;
    SendInfo((PVOID) buffer.c_str(), nResult);
    return(nResult);
}
 
CAPIHook g_recv("Wsock32.dll", "recv", 
    (PROC) recv_hook);
Это в .dll.
SendInfo отправляет результат в основную программу, там из него вытаскивается урл и все довольны... должны быть.
Проблема в том, что работает это только с Firefox-ом (и MSN-ом... побочный эффект...), остальные браузеры болт клали и на меня, и на мой, простите, хук.
Пробовал ставить хук на send — то же самое, но опера вобще падает.
Или не те функции, или кривая реализация, или одно из трёх.

Последний раз редактировалось 0lorin; 01.10.2010 в 17:07.
0lorin вне форума Ответить с цитированием
Старый 02.10.2010, 21:42   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

может используется Write/ReadFile?
может стоит проще снифер накалякать?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.10.2010, 11:49   #3
0lorin
Новичок
Джуниор
 
Регистрация: 01.10.2010
Сообщений: 2
По умолчанию

Может и проще. А сниффер урлы покажет?
0lorin вне форума Ответить с цитированием
Старый 08.10.2010, 13:03   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А чего нет? Должен показать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
send/recv: размер сообщения cw_o Работа с сетью в Delphi 4 23.04.2010 19:00
MPI: send и recv cheparamba Общие вопросы C/C++ 0 09.03.2010 05:48
Зацикливается recv. asdo Общие вопросы C/C++ 4 23.01.2010 23:38
recv() Артэс C/C++ Сетевое программирование 7 15.01.2010 14:51
WinSock (send, recv) AidarBik Работа с сетью в Delphi 1 27.07.2008 15:22