На главную Наши проекты:
Журнал   ·   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) 1 2 [3] 4 5 ... Последняя » все  ( Перейти к последнему сообщению )  
> Сниффер , Может ли сниффер...
    sAshA20 Возможно поможет Проект Skynet
    Сообщение отредактировано: Astrafox -
      Цитата Rouse_ @
      иначе она так и останется голой теорией

      Я все-таки сторонник совпадения теории и практики - тем более что практика в программировании есть прямое отражение теории.
      И поэтому отсебятину производителей софта - недокументированную - я не приветствую.

      Добавлено
      Цитата sAshA20 @
      Могу я отменить загрузку любого из них

      Нет, такого действия в протоколе http нет, можно лишь оборвать передачу.
      Если только не писать собственный веб-броузер, который будет селективно выбирать нужные кому-то файлы, а остальные игнорировать.
      Впрочем, некоторые подобные настройки в броузерах есть - типа - не грузить изображения...
      Но чтобы прерывать на середине.... :blink:
        Цитата Oleg2004 @
        Нет, такого действия в протоколе http нет, можно лишь оборвать передачу.


        Точно нельзя??? Очень жаль! :(
        А как тогда это реализовано в программе Naviscope официальный сайт сама прога?
        Только из-за того что она прокси? Только прокси может отменять загрузку отдельного файла?
          Цитата sAshA20 @
          А как тогда это реализовано в программе Naviscope

          Сие мне неизвестно - да и в описании программы об этом я не нашел
            Цитата Oleg2004 @
            который будет селективно выбирать нужные кому-то файлы, а остальные игнорировать



            А можна ли, используя код сниффера (см. сообщ # 1), буферизировать пакеты с запросами на отдельные файлы и посылать их адресату в том случае, если ми указуем этот файл как нужный (разрешаем его загрузку)?

            ИЛИ

            Перенаправлять пакеты с запросами на отдельный порт (каждый файл на свой порт). В том случае, если ми хотим отменить загрузку отдельного файла - просто закрываем порт или что-то в таком роде чтобы он не загружался. А?
              Нет, для этого он не предназначен...
                Цитата Rouse_ @
                Нет, для этого он не предназначен...


                Я имею ввиду дописать код этого сниффера.
                А как на счет идей??? Подскажите, пожалуйста!
                  На том уровне на котором работает данный сниффер пакеты заблокировать уже нельзя... Поэтому даже дописыванием кода тут не решить. Тут должен работать NDIS драйвер...
                    Цитата sAshA20 @
                    Перенаправлять пакеты с запросами на отдельный порт (каждый файл на свой порт).

                    Открытый порт на клиенте - это одно приложение (те одна программа) - этот порт выделяется при выполнении коннекта - и более не меняется. Порт выделяется броузером также для новой закладки (многопоточный клиент).
                      Цитата Rouse_ @
                      Тут должен работать NDIS драйвер...


                      Можна поподробней, пожалуйста? :huh:

                      Больше ни у кого никаких идей? :(
                        Цитата sAshA20 @
                        Можна поподробней, пожалуйста?

                        Попробуй вот это помотреть: http://www.tisbi.ru/resource/lib/Eltext/BookPrSistSecurity/Glava%203/GL3.htm
                        Это теория. Самостоятельно ты врятли будешь писать драйвер, так-что после прочтения теории ищи статьи по WinPCap
                          Цитата Rouse_ @
                          Поэтому даже дописыванием кода тут не решить. Тут должен работать NDIS драйвер...


                          Эмм... У Вас же в коде это и делается, только пакеты до конца доходят, точнее Вы продолжаете его принимать до конца.
                          ExpandedWrap disabled
                            while not Terminated do
                                begin
                                  // Ждем получения пакета (блокирующий режим)
                                  PacketSize := recv(hSocket, Packet, MAX_PACKET_SIZE, 0);
                                  // Если есть данные - производим их разбор
                                  if PacketSize > SizeOf(TIPHeader) then ParcePacket(PacketSize);
                                end;
                              finally
                                // В конце освобождаем занятые ресурсы
                                DeInitSocket(NO_ERROR);
                              end;


                          А если сделать буффер поменьше для приёма и не продолжать принимать то ожидание как раз и будет остановкой. По крайней мере я когда писала и проверяла, у меня было именно так, я грузила страницу в браузере и мой сниффер в котором был размер буффера 1024 принял данные такого размера а дальше в коде не было реализовано продолжение принятия и страница в браузере дальше не грузилась. Так что драйвер и не нужен. Ведь мы привязываемся к интерфейсу и принимаем данные, если мы не будем продолжать принимать то данные стоят в очереди.

                          По-пробуйте сами ;)
                            Цитата Катенька @
                            дальше в коде не было реализовано продолжение принятия и страница в браузере дальше не грузилась

                            Интересно, но у меня такого эффекта не наблюдалось !

                            Вообще по идее равсокет работает параллельно с приложениями и если он не принимает пакеты то они всё равно продолжают идти, ведь это всего лишь сниффер !
                            Я в своей программе делал блокировку портов через Packet Filtering... Я прикрепил пару модулей.

                            FLTDEFS.pas - это файл в котором описываются функции и типы данных Pf
                            UProtection.pas - модуль со сниффером и упрощёнными функциями Pf.

                            Сниффер конечно же Rouse_ :)

                            Сначала вызываем StartProtection(Host - адрес к которому привязываемся, Mask - по идее маска но у меня почему-то работает только '255.255.255.255'...)

                            Затем PfDenyIP2Port / PfAllowIP2Port ... , при закрытии приложения StopProtection.
                            Код ещё в разработке так что если там где-то нету try..except, try..finally то не бить ! :)

                            А ну ещё в главной форме (у меня FMainNFW) нужна процедура OnPacket. В ней читаем информацию о пакете:
                            ExpandedWrap disabled
                              SnifferThread:
                                  strPacket: string; // пакет
                               
                                  strSrcIP: string; // откуда пришёл (IP)
                                  strDstIP: string; // куда пришёл (IP)
                               
                                  intSrcPort: Word; // с какого порта пришёл
                                  intDstPort: Word; // на какой порт пришёл

                            и решаем что делать, здесь можно вызвать PfDenyIP2Port, PfAllowIP2Port.

                            А, и ещё - сниффер просматривает только TCP-пакеты (так нужно было), не составит труда добавить по надобности и другие протоколы
                            Сообщение отредактировано: dot -

                            Прикреплённый файлПрикреплённый файлnetfw.zip (5.92 Кбайт, скачиваний: 329)
                              Цитата Rouse_ @
                              ищи статьи по WinPCap


                              Изучаю родную документацию WinPCap... Есть непонятки...
                              Вопрос: Можна ли, использую WinPCap, перехватывать исходящие пакеты, в которых содержится запрос браузера. Как это реализовать?
                              Под перехватом здесь понимается буферизация тех пакетов, которые содержат нужные запросы браузера. В сеть они не идут! Они идут в сеть лиш после того, как юзер подтвердит надобность в запрашиваемом ресурсе (файле, странице и т.д.). Всем остальным пакетам - свобода действий.

                              Перед прочтением документации был уверен, что это возможно. Теперь есть сомнения: возможно ли?
                                Цитата sAshA20 @
                                Перед прочтением документации был уверен, что это возможно. Теперь есть сомнения: возможно ли?

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


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0505 ]   [ 16 queries used ]   [ Generated: 27.04.24, 10:30 GMT ]