Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как перехватить HTTP - запрос? 
:(
    Опции темы
Guest
Дата 9.12.2005, 17:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здравствуйте. Мне нужно написать программу, которая будет постоянно висеть в памяти и регистрировать на какие сайты пользователь заходит (независимо от браузера). Интересует именно как перехватить это событие, когда пользователь загружает страницу, ну и URL этой страницы.
  Вверх
Snowy
Дата 9.12.2005, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Это слишком сложно.
Обычно такие вещи делают на уровне прокси сервера.
PM MAIL   Вверх
Guest
Дата 9.12.2005, 17:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Snowy @ 9.12.2005, 17:39)
Это слишком сложно.
Обычно такие вещи делают на уровне прокси сервера.

Ну можно же как-то контролировать исходящий траффик?
  Вверх
Snowy
Дата 9.12.2005, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(Guest @ 9.12.2005, 17:40)
Ну можно же как-то контролировать исходящий траффик?

Траффик да. Но собирать пакеты, вытаскивать из них данные, соединять их, отбрасывая лишнее... Это специализированный сниффер должен быть.
Добавлено @ 17:49
Кстати, можешь спросить у гугля или т.п. на тему HTTP снифера.
PM MAIL   Вверх
Teran
Дата 9.12.2005, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Guest когда раскопаеш что-то скинь сюда пожалуйста меня тоже эта тема интересует


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Guest
Дата 9.12.2005, 19:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А если определять к каким айпишникам коннектится юзер и по ним получать урлы?
  Вверх
Darhazer
Дата 9.12.2005, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: нет
Всего: 29



Зачем так сложно.
Программа регестрируеть себя как обработчика http ( HKEY_CLASSES_ROOT\HTTP\Sheel\open\command ) записиваеть адрес, а потом запускает браузер на этого адреса ;)



--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
Guest
Дата 9.12.2005, 19:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Darhazer @ 9.12.2005, 19:40)
Зачем так сложно.
Программа регестрируеть себя как обработчика http ( HKEY_CLASSES_ROOT\HTTP\Sheel\open\command ) записиваеть адрес, а потом запускает браузер на этого адреса ;)

А поподробней можно? Лучше если на примере покажешь smile
  Вверх
Darhazer
Дата 9.12.2005, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: нет
Всего: 29



К стате, можеть быт так не получеться когда браузер уже запущен и пользватель пишет адрес в аддресной строке... ;) Но все таки - эта алтернатива -> копаться в реестре smile
Добавлено @ 19:53
Цитата(Guest @ 9.12.2005, 19:29)
А если определять к каким айпишникам коннектится юзер и по ним получать урлы?

Можно по URL получить IP, но по IP->URL - нет, так как на одном сервере (одном IP) могут быть много сайтов (URL)


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
Snowy
Дата 9.12.2005, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(Darhazer @ 9.12.2005, 19:40)
Программа регестрируеть себя как обработчика http

Это вообще не вариант.
Запускаем браузер и все. Программа вообще ничего не видит.

Цитата(Guest @ 9.12.2005, 19:29)
А если определять к каким айпишникам коннектится юзер и по ним получать урлы?

Не серъезно. Как полумера пойдет, но результат ниже среднего.
Так мы только домен определим.
А если человек пошел на тот же narod.ru.
Он может читать анекдоты, религиозную страничку или искать проф информацию.
Мы этого по IP не определим - там тонны сайтов, а IPшников в сотни раз меньше (а может вообще один).
Кроме того, всякого рода банеры тоже создают запросы, а реально мы получим информацию, что пользователь и туда ходил.
PM MAIL   Вверх
Guest
Дата 10.12.2005, 16:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну существуют же HTTP-снифферы и там это как-то реализовано ведь?
  Вверх
RA
Дата 10.12.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



не хотел говрить но скажу smile , проще было бы получать по таймеру (или по событию) информацию из браузера, типа GetIEurl ....

Пища для размышления:
у каждого браузера сущесвует журнал где хранится информация о посещаемых, и посещённых сайтах ...

Можно перехватывать функции вызова из WinInet но имхо, это только для IE, а раз только для ИЕ, то проще иначе.

ЗЫ: Для тех кто собрался писать сниффер ТЕМА


PM   Вверх
Teran
Дата 27.12.2005, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



На самом деле всё это сделать очень легко и просто smile smile

Кто заинтересуется могу рассказать подробно smile


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Snowy
Дата 27.12.2005, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(RAdmin @ 10.12.2005, 17:40)
нформацию из браузера, типа GetIEurl ....

Из какого браузера? Из фиревокса или из оперы? А может из нетшкафа?
А, если я вообще досовским арахном пользуюсь...

Цитата(Teran @ 27.12.2005, 11:40)
На самом деле всё это сделать очень легко и просто

Действительно. И как мы все сразу не догадались, как это просто...
Только результата нет...

Цитата(Teran @ 27.12.2005, 11:40)
Кто заинтересуется могу рассказать подробно

Ну так расскажи.
PM MAIL   Вверх
Teran
Дата 27.12.2005, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



необходимо просто напросто поставить хуки на:

функции Send (WSOCK32.DLL) и SendTo (WSOCK32.DLL)

Затем в обработчике отлавливать приходящий буфер, а именно http запрос

структура у него приблизительно такая (Iexplore):
Код

GET http://forum.vingrad.ru/html/translit_only.js HTTP/1.0
Accept: */*
Referer: http://forum.vingrad.ru/index.php?showtopic=73775
Accept-Language: ru
Cookie: proforumforum_read=a%3A1%3A%7Bi%3A85%3Bi%3A1135668044%3B%7D; proforummember_id=13023; proforumpass_hash=1efa643c0b56892ad056737dd9299bd3; proforumsession_id=5b9df56ccf5748242307a8f1de82eab1; CookieIp=80.84.179.174
If-Modified-Since: Sat, 23 Jul 2005 09:40:01 GMT
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: forum.vingrad.ru
Proxy-Connection: Keep-Alive

или такая(Opera):
Код

GET http://www.umc.ua/ HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows XP) Opera 6.01  [ru]
Host: www.umc.ua
Accept: text/html, image/png, image/jpeg, image/gif, image/x-xbitmap, */*
Accept-Language: ru, en
Accept-Charset: windows-1251;q=1.0, utf-8;q=1.0, utf-16;q=1.0, iso-8859-1;q=0.6, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Proxy-Connection: Keep-Alive


т.е. просто необходимо витягивать первую строку, проверять на "Содержание GET, OPTIONS, POST, ...... смотри структуру HTTP запросов http://ru.wikipedia.org/wiki/HTTP"

и все дела причем можно даже при совпадении какого нибудь Урла закрывать данный открытый сокет

ЧЕМ ТЕБЕ НИ СНИФЕР?????
(Работает в любой винде)
Добавлено @ 12:49
Точно также если перехватывать
recv (WSOCK32.DLL) и recvfrom (WSOCK32.DLL)

можно фильтровать приходящие пакеты

(напрмер я себе фильтрую приходящие ActiveX
просто в приходящем пакете ищу совпадение с <object и (</object>) и делаю с ним ... smile ... все что захочу)


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Teran
Дата 27.12.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Кстате здесь упоминалось про разнообразие браузеров

smile Работает на в Любом браузере


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Teran
Дата 27.12.2005, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



И того получился полный джентельменский наборчик:

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


Просто чудеса какие-то!


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
RA
Дата 27.12.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



Цитата(Snowy @ 27.12.2005, 12:21)
Из какого браузера? Из фиревокса или из оперы? А может из нетшкафа?
А, если я вообще досовским арахном пользуюсь...


Это для IE (что следует из названия функции) причём уверен в Com/ActiveX есть пример.

PM   Вверх
Teran
Дата 27.12.2005, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Если нужно только для IE то можно просто перехватывать

InternetOpenUrlA
InternetOpenUrlW
InternetCreateUrlA
InternetCreateUrlW
InternetCombineUrlA
InternetCombineUrlW

из wininet.dll



--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Гость_this
Дата 28.12.2005, 13:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Teran @ 27.12.2005, 14:28)
И того получился полный джентельменский наборчик:

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


Просто чудеса какие-то!

Действительно, чудеса smile. Спасибо Teran - это то что нужно.
  Вверх
Guest
Дата 29.12.2005, 12:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Teran
Цитата

ЧЕМ ТЕБЕ НИ СНИФЕР?????
(Работает в любой винде)

Одна проблемма, есть еще https...
  Вверх
Guest
Дата 30.12.2005, 14:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Guest @ 29.12.2005, 12:54)
Одна проблемма, есть еще https...


Защел на: https://addons.mozilla.org/extensions/moreinfo.php?id=655

и вот что находится в отправляемом пакете(opera):
CONNECT addons.mozilla.org:443 HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows XP) Opera 6.01 [ru]
Host: addons.mozilla.org
Proxy-Connection: close
Connection: close


я думаю что если искать на совпадение какой-то URL чтобы затем закрыть сокет, то все равно на какой сайт лезть: хоть http хоть https
  Вверх
Teran
Дата 30.12.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



ведь не зависимо что набираеш в URL все равно формируется какойто пакет отправки, который можно прочесть и использовать "под себя"


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Guest
Дата 3.1.2006, 10:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата

и вот что находится в отправляемом пакете(opera):
CONNECT addons.mozilla.org:443 HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows XP) Opera 6.01 [ru]
Host: addons.mozilla.org
Proxy-Connection: close
Connection: close

Это если сидишь за прокси...
  Вверх
this
Дата 9.1.2006, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 12.9.2005

Репутация: нет
Всего: 1



Цитата(Teran @ 27.12.2005, 14:48)
Если нужно только для IE то можно просто перехватывать

InternetOpenUrlA
InternetOpenUrlW
InternetCreateUrlA
InternetCreateUrlW
InternetCombineUrlA
InternetCombineUrlW

из wininet.dll

А не подскажешь как правильно перехватывать эти функции?
PM MAIL   Вверх
djmix777
Дата 18.7.2006, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2006
Где: Россия

Репутация: нет
Всего: нет



привет всем!
тоже интересно как сделать, у кого есть исходники?
помогите чем можете. Спасибо заранее! 
PM MAIL   Вверх
YoriKim
Дата 18.3.2008, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.5.2007

Репутация: нет
Всего: нет



Цитата(Teran @  27.12.2005,  12:42 Найти цитируемый пост)
Затем в обработчике отлавливать приходящий буфер, а именно http запрос 

Teran, а как получить этот самый буфер??? пробывал следующим образом сделать хук на функцию send:

Код

function NewSend(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
begin
  result:=Send(s,Buf,len,flags);
  ShowMessage(PAnsiChar(Buf));
end;


После чего, все приложения вызывающие эту функцию падают.
PM MAIL   Вверх
RA
Дата 18.3.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115





Прмер с исходником:
http://madshi.net/appsniff.rar

Необходимы: madshiCodeHook, VirtualTreeView, DelphiFundamentals.
PM   Вверх
dedal73rus
Дата 21.5.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 13.5.2009

Репутация: нет
Всего: нет



разобрался с dll в которой пишутся функции перехвата.не пойму упорно что делать с этой длл (как вызывать из проекта) и как из получать буфер из этой длл ,а точнее из функции Send и SendTo. Просьба на статьи ms rem'а не отсылать,не могу понять((помогите люди 
PM MAIL   Вверх
RA
Дата 24.5.2009, 04:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



Цитата(dedal73rus @  21.5.2009,  18:19 Найти цитируемый пост)
не пойму упорно что делать с этой длл (как вызывать из проекта) и как из получать буфер из этой длл ,а точнее из функции Send и SendTo.


Если ты про Appsniff то:
Длл внедряется в процесс интересующего приложения, в котором длл принимает все Send-ы и Receiv-ы на себя а потом возвращает их процессу у которого она их перехватила, а также передаёт их копию твоему приложению. В примере всё есть . 
PM   Вверх
malor
  Дата 20.8.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Цитата(RA @ 10.12.2005,  17:40)
Можно перехватывать функции вызова из WinInet но имхо, это только для IE, а раз только для ИЕ, то проще иначе.

Кроме древней статьи Перехват данных Internet Explorer(Under The Hood) есть еще какие-нить руководства по перехвату "вызовов из WinInet" ? smile 
PM MAIL   Вверх
hhhhhhhhhhhh
Дата 24.9.2011, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.7.2008

Репутация: нет
Всего: нет



Подскажите. 
Вот перехватил я функции send, wsasend, sendto. 
Проверяю буфер и в GET заголовке нахожу URL который хочу заблокировать. Возвращаю результат INVALID_SOCKET или SOCKET_ERROR.
Все нормально, запрос обламывается, но начинает через определенные промежутки времени опять ломится по этому же адресу, видать по таймауту...
Тут сказали что можно закрыть сокет, а как это правильно сделать?
Как мертво обломить запрос, чтобы не ломился повторно?
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1648 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.