На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
Страницы: (6) « Первая ... 3 4 [5] 6  все  ( Перейти к последнему сообщению )  
> Сниффер , Может ли сниффер...
    Цитата Rouse_ @
    Она перехватывает только функции обьявленные в таблице импорта. Браузеры-же используют wininet...


    А как сделать для браузера? Помогите, пожалуйста, поясните!! Вся надежда на Вас! Начинаю седеть :wall:
      Вот читай про сплайсинг:
      http://www.wasm.ru/article.php?article=apihook_1
      http://www.wasm.ru/article.php?article=sasapi

      Перехватывать нужно InternetOpenUrl, HttpSendRequest, InternetReadFile, InternetReadFileEx
        Нашол статейки о перехвате функций send, WSASend, recv, WSAResv с библиотеки ws2_32.dll.
        Компилировал примерчики... В статейке написано, шо гарантировано работает, но у меня почемуто нет... Библиотечка внедряется, но запросы не блокируются?! :wall:
        Вот один из примеров
        Сообщение отредактировано: sAshA20 -

        Прикреплённый файлПрикреплённый файлmshlp.rar (1.05 Кбайт, скачиваний: 302)
          Скорее всего вот это не отрабатывает:
          ExpandedWrap disabled
            hws2_32 := GetModuleHandle('ws2_32.dll');
            Цитата Rouse_ @
            hws2_32 := GetModuleHandle('ws2_32.dll');


            А как на Ваш взгляд лучше сделать?
              Ну хотябы так:
              ExpandedWrap disabled
                var
                  bLoaded: Boolean = False;
                 
                ...
                 
                try
                  hws2_32 := GetModuleHandle('ws2_32.dll');
                  if hws2_32 = 0 then
                  begin
                    hws2_32 := LoadLibrary('ws2_32.dll');
                    bLoaded := hws2_32 > HINSTANCE_ERROR;
                    if bLoaded then
                    begin
                      ...
                    end;
                finally
                  if bLoaded then
                    FreeLibrary(hws2_32);
                end;
                Создал свою dll для внедрения в адресное пространство приложения (а конкретно браузера) и простенькое приложение для внедрение библиотеки в браузер. Использую библиотечку advApiHook coded By Ms-Rem. Функция перехвата возвращает код успешного перехвата. Осуществляется переход на мою функцию send. Но при чтении буфера Buf браузера, в котором находиться его запрос, вилетает браузер. Почему!!! Много експериментировал, но ничего не помогает. Все равно вилетает браузер. Вот проект
                Сообщение отредактировано: sAshA20 -

                Прикреплённый файлПрикреплённый файлHookSend.rar (374.39 Кбайт, скачиваний: 314)
                  немного пофлужу, но по моему обсуждение поменяло термин "сниффер" на "фаервол". Чтобы решить предложенные здесь задачи я думаю проще поискать исходные тексты фаерволов: ведь самые простые из них с самого начала могли как полностью блокировать сетевые подключения, так и "вырезать" ненужный контент, такой как реклама.
                  Как я споминаю, фаервол может не работать через драйвер: виндовс с самого начала предусмотрела такие функции - т.е. перед отправкой/приемом любого пакета вызывается callback функция (название сейчас хоть убейте не вспомню, но искал я в страндартом msdn), возвращающая в результате действие, с которым надлежит поступить с этим пакетом.
                    Цитата vljak @
                    с самого начала предусмотрела такие функции - т.е. перед отправкой/приемом любого пакета вызывается callback функция

                    Эмм... параметр LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine в функции WSASend()?
                      Написал прогу которая перехватывает запросы браузера до отправки в сеть, а точнее функции HttpOpenRequestA HttpSendRequest (перехватываю методом сплайсинга, использую библиотеку advApiHook)! Кому интересно пишите на ajax20@ukr.net (исходников нет с собой, позже тут выложу). Прога сырая, но кто заинтересован - доработает.
                      Но есть маленькая проблема - мне нужно прерывать загрузку отдельного файла (контента страницы) в любой момент!!!!!
                      В даной же проге я могу сделать прерывание только через не отправку запроса в сеть!! Есть ли функции в WinInet и не только, которые позволяют это сделать. Или только надо писать прокси (если да, то есть ли подобные исходники).
                      Люди которые в этом хорошо разбираются отзовитесь!!! Поясните пожалуйста мне как реализовать отмену загрузки отдельного взятого файла в любой момент. :wall: :wall: :wall:
                        Цитата sAshA20 @
                        как реализовать отмену загрузки отдельного взятого файла в любой момент

                        Фактически это означает прерывание работы recv() в произвольный момент. Механизма API такого останова работы я пока не знаю.
                        Мое первое решение, которое пришло в голову - такое:
                        Прием файла(загрузка) идет в отдельном потоке.
                        Второй поток просто висит как дамоклов меч - как только получает команду, убивает поток приема - вместе с recv()
                        Может кто и другое получше предложит :)
                          Ну механизм можно сделать на основе того-же Recv, только принимать маленькими порциями. Т.е. при перехвате начинаем закачку самостоятельно и по поступлении команды о отмене, прекращаем закачку и возвращаем к примеру WSA_OPERATION_ABORTED...
                            Цитата Rouse_ @
                            на основе того-же Recv


                            А как из функции recv мы узнаем какой файл пришел или на какой запрос пришел ответ! или я чего-то не догоня...

                            И можно ли сделать так: перехватывая функции HttpOpenRequestA, HttpSendRequest и подобные, и запуская их в отдельных потоках, могу ли я отменить загрузку отдельного файла в любой момент, прикрыв нужный поток?
                              Цитата sAshA20 @
                              А как из функции recv мы узнаем какой файл пришел или на какой запрос пришел ответ!

                              Она предназначена для приема буффера :) Если хочешь что-то узнать нужно еще сплайсить функции :)
                                Цитата Rouse_ @
                                Она предназначена для приема буффера Если хочешь что-то узнать нужно еще сплайсить функции


                                Пожалуйста, поясните как можно поподробней и попорядку. Это мне очень важно. Не хочу что нибудь упустить.
                                Пожалуйста!
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0454 ]   [ 17 queries used ]   [ Generated: 19.03.24, 09:09 GMT ]