![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Guest |
|
|||
Unregistered |
Здравствуйте. Мне нужно написать программу, которая будет постоянно висеть в памяти и регистрировать на какие сайты пользователь заходит (независимо от браузера). Интересует именно как перехватить это событие, когда пользователь загружает страницу, ну и URL этой страницы.
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Это слишком сложно.
Обычно такие вещи делают на уровне прокси сервера. |
|||
|
||||
Guest |
|
|||
Unregistered |
Ну можно же как-то контролировать исходящий траффик? |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Траффик да. Но собирать пакеты, вытаскивать из них данные, соединять их, отбрасывая лишнее... Это специализированный сниффер должен быть. Добавлено @ 17:49 Кстати, можешь спросить у гугля или т.п. на тему HTTP снифера. |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Guest когда раскопаеш что-то скинь сюда пожалуйста меня тоже эта тема интересует
-------------------- Ни цего не понимаю |
|||
|
||||
Guest |
|
|||
Unregistered |
А если определять к каким айпишникам коннектится юзер и по ним получать урлы?
|
|||
|
||||
Darhazer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Guest |
|
|||
Unregistered |
А поподробней можно? Лучше если на примере покажешь ![]() |
|||
|
||||
Darhazer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 28.9.2005 Где: HellCity (Sofia, Bulgaria) Репутация: нет Всего: 29 |
К стате, можеть быт так не получеться когда браузер уже запущен и пользватель пишет адрес в аддресной строке... ;) Но все таки - эта алтернатива -> копаться в реестре
![]() Добавлено @ 19:53
Можно по 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 |
|||
|
||||
Snowy |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Это вообще не вариант. Запускаем браузер и все. Программа вообще ничего не видит.
Не серъезно. Как полумера пойдет, но результат ниже среднего. Так мы только домен определим. А если человек пошел на тот же narod.ru. Он может читать анекдоты, религиозную страничку или искать проф информацию. Мы этого по IP не определим - там тонны сайтов, а IPшников в сотни раз меньше (а может вообще один). Кроме того, всякого рода банеры тоже создают запросы, а реально мы получим информацию, что пользователь и туда ходил. |
||||
|
|||||
Guest |
|
|||
Unregistered |
Ну существуют же HTTP-снифферы и там это как-то реализовано ведь?
|
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
не хотел говрить но скажу
![]() Пища для размышления: у каждого браузера сущесвует журнал где хранится информация о посещаемых, и посещённых сайтах ... Можно перехватывать функции вызова из WinInet но имхо, это только для IE, а раз только для ИЕ, то проще иначе. ЗЫ: Для тех кто собрался писать сниффер ТЕМА |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
На самом деле всё это сделать очень легко и просто
![]() ![]() Кто заинтересуется могу рассказать подробно ![]() -------------------- Ни цего не понимаю |
|||
|
||||
Snowy |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Из какого браузера? Из фиревокса или из оперы? А может из нетшкафа? А, если я вообще досовским арахном пользуюсь...
Действительно. И как мы все сразу не догадались, как это просто... Только результата нет...
Ну так расскажи. |
||||||
|
|||||||
Teran |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
необходимо просто напросто поставить хуки на:
функции Send (WSOCK32.DLL) и SendTo (WSOCK32.DLL) Затем в обработчике отлавливать приходящий буфер, а именно http запрос структура у него приблизительно такая (Iexplore):
или такая(Opera):
т.е. просто необходимо витягивать первую строку, проверять на "Содержание GET, OPTIONS, POST, ...... смотри структуру HTTP запросов http://ru.wikipedia.org/wiki/HTTP" и все дела причем можно даже при совпадении какого нибудь Урла закрывать данный открытый сокет ЧЕМ ТЕБЕ НИ СНИФЕР????? (Работает в любой винде) Добавлено @ 12:49 Точно также если перехватывать recv (WSOCK32.DLL) и recvfrom (WSOCK32.DLL) можно фильтровать приходящие пакеты (напрмер я себе фильтрую приходящие ActiveX просто в приходящем пакете ищу совпадение с <object и (</object>) и делаю с ним ... ![]() -------------------- Ни цего не понимаю |
||||
|
|||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Кстате здесь упоминалось про разнообразие браузеров
![]() -------------------- Ни цего не понимаю |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
И того получился полный джентельменский наборчик:
мы знаем имя файла, который лезит в нет, IP адрес и порт по которому законектился сокет и ко всему прочиму URL (причем можно запрещать или пропускать) при необходимости можно еще просматривать что к нам пришло (фильтровать приходящие пакеты) Просто чудеса какие-то! -------------------- Ни цего не понимаю |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
Это для IE (что следует из названия функции) причём уверен в Com/ActiveX есть пример. |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Если нужно только для IE то можно просто перехватывать
InternetOpenUrlA InternetOpenUrlW InternetCreateUrlA InternetCreateUrlW InternetCombineUrlA InternetCombineUrlW из wininet.dll -------------------- Ни цего не понимаю |
|||
|
||||
Гость_this |
|
|||
Unregistered |
Действительно, чудеса ![]() |
|||
|
||||
Guest |
|
|||
Unregistered |
Teran
Одна проблемма, есть еще https... |
|||
|
||||
Guest |
|
|||
Unregistered |
Защел на: 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 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
ведь не зависимо что набираеш в URL все равно формируется какойто пакет отправки, который можно прочесть и использовать "под себя"
-------------------- Ни цего не понимаю |
|||
|
||||
Guest |
|
|||
Unregistered |
Это если сидишь за прокси... |
|||
|
||||
this |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 12.9.2005 Репутация: нет Всего: 1 |
А не подскажешь как правильно перехватывать эти функции? |
|||
|
||||
djmix777 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.7.2006 Где: Россия Репутация: нет Всего: нет |
привет всем!
тоже интересно как сделать, у кого есть исходники? помогите чем можете. Спасибо заранее! |
|||
|
||||
YoriKim |
|
||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.5.2007 Репутация: нет Всего: нет |
Teran, а как получить этот самый буфер??? пробывал следующим образом сделать хук на функцию send:
После чего, все приложения вызывающие эту функцию падают. |
||||
|
|||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
Прмер с исходником: http://madshi.net/appsniff.rar Необходимы: madshiCodeHook, VirtualTreeView, DelphiFundamentals. |
|||
|
||||
dedal73rus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
разобрался с dll в которой пишутся функции перехвата.не пойму упорно что делать с этой длл (как вызывать из проекта) и как из получать буфер из этой длл ,а точнее из функции Send и SendTo. Просьба на статьи ms rem'а не отсылать,не могу понять((помогите люди
|
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
Если ты про Appsniff то: Длл внедряется в процесс интересующего приложения, в котором длл принимает все Send-ы и Receiv-ы на себя а потом возвращает их процессу у которого она их перехватила, а также передаёт их копию твоему приложению. В примере всё есть . |
|||
|
||||
malor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Кроме древней статьи Перехват данных Internet Explorer(Under The Hood) есть еще какие-нить руководства по перехвату "вызовов из WinInet" ? ![]() |
|||
|
||||
hhhhhhhhhhhh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 24.7.2008 Репутация: нет Всего: нет |
Подскажите.
Вот перехватил я функции send, wsasend, sendto. Проверяю буфер и в GET заголовке нахожу URL который хочу заблокировать. Возвращаю результат INVALID_SOCKET или SOCKET_ERROR. Все нормально, запрос обламывается, но начинает через определенные промежутки времени опять ломится по этому же адресу, видать по таймауту... Тут сказали что можно закрыть сокет, а как это правильно сделать? Как мертво обломить запрос, чтобы не ломился повторно? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |