Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[52.14.253.170] |
|
Страницы: (6) 1 2 [3] 4 5 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
sAshA20 Возможно поможет Проект Skynet
|
Сообщ.
#32
,
|
|
|
Я все-таки сторонник совпадения теории и практики - тем более что практика в программировании есть прямое отражение теории. И поэтому отсебятину производителей софта - недокументированную - я не приветствую. Добавлено Нет, такого действия в протоколе http нет, можно лишь оборвать передачу. Если только не писать собственный веб-броузер, который будет селективно выбирать нужные кому-то файлы, а остальные игнорировать. Впрочем, некоторые подобные настройки в броузерах есть - типа - не грузить изображения... Но чтобы прерывать на середине.... |
Сообщ.
#33
,
|
|
|
Цитата Oleg2004 @ Нет, такого действия в протоколе http нет, можно лишь оборвать передачу. Точно нельзя??? Очень жаль! А как тогда это реализовано в программе Naviscope официальный сайт сама прога? Только из-за того что она прокси? Только прокси может отменять загрузку отдельного файла? |
Сообщ.
#34
,
|
|
|
Цитата sAshA20 @ А как тогда это реализовано в программе Naviscope Сие мне неизвестно - да и в описании программы об этом я не нашел |
Сообщ.
#35
,
|
|
|
Цитата Oleg2004 @ который будет селективно выбирать нужные кому-то файлы, а остальные игнорировать А можна ли, используя код сниффера (см. сообщ # 1), буферизировать пакеты с запросами на отдельные файлы и посылать их адресату в том случае, если ми указуем этот файл как нужный (разрешаем его загрузку)? ИЛИ Перенаправлять пакеты с запросами на отдельный порт (каждый файл на свой порт). В том случае, если ми хотим отменить загрузку отдельного файла - просто закрываем порт или что-то в таком роде чтобы он не загружался. А? |
Сообщ.
#36
,
|
|
|
Нет, для этого он не предназначен...
|
Сообщ.
#37
,
|
|
|
Цитата Rouse_ @ Нет, для этого он не предназначен... Я имею ввиду дописать код этого сниффера. А как на счет идей??? Подскажите, пожалуйста! |
Сообщ.
#38
,
|
|
|
На том уровне на котором работает данный сниффер пакеты заблокировать уже нельзя... Поэтому даже дописыванием кода тут не решить. Тут должен работать NDIS драйвер...
|
Сообщ.
#39
,
|
|
|
Цитата sAshA20 @ Перенаправлять пакеты с запросами на отдельный порт (каждый файл на свой порт). Открытый порт на клиенте - это одно приложение (те одна программа) - этот порт выделяется при выполнении коннекта - и более не меняется. Порт выделяется броузером также для новой закладки (многопоточный клиент). |
Сообщ.
#40
,
|
|
|
Цитата Rouse_ @ Тут должен работать NDIS драйвер... Можна поподробней, пожалуйста? Больше ни у кого никаких идей? |
Сообщ.
#41
,
|
|
|
Цитата sAshA20 @ Можна поподробней, пожалуйста? Попробуй вот это помотреть: http://www.tisbi.ru/resource/lib/Eltext/BookPrSistSecurity/Glava%203/GL3.htm Это теория. Самостоятельно ты врятли будешь писать драйвер, так-что после прочтения теории ищи статьи по WinPCap |
Сообщ.
#42
,
|
|
|
Цитата Rouse_ @ Поэтому даже дописыванием кода тут не решить. Тут должен работать NDIS драйвер... Эмм... У Вас же в коде это и делается, только пакеты до конца доходят, точнее Вы продолжаете его принимать до конца. 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 принял данные такого размера а дальше в коде не было реализовано продолжение принятия и страница в браузере дальше не грузилась. Так что драйвер и не нужен. Ведь мы привязываемся к интерфейсу и принимаем данные, если мы не будем продолжать принимать то данные стоят в очереди. По-пробуйте сами |
Сообщ.
#43
,
|
|
|
Цитата Катенька @ дальше в коде не было реализовано продолжение принятия и страница в браузере дальше не грузилась Интересно, но у меня такого эффекта не наблюдалось ! Вообще по идее равсокет работает параллельно с приложениями и если он не принимает пакеты то они всё равно продолжают идти, ведь это всего лишь сниффер ! Я в своей программе делал блокировку портов через 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. В ней читаем информацию о пакете: SnifferThread: strPacket: string; // пакет strSrcIP: string; // откуда пришёл (IP) strDstIP: string; // куда пришёл (IP) intSrcPort: Word; // с какого порта пришёл intDstPort: Word; // на какой порт пришёл и решаем что делать, здесь можно вызвать PfDenyIP2Port, PfAllowIP2Port. А, и ещё - сниффер просматривает только TCP-пакеты (так нужно было), не составит труда добавить по надобности и другие протоколы Прикреплённый файлnetfw.zip (5.92 Кбайт, скачиваний: 329) |
Сообщ.
#44
,
|
|
|
Цитата Rouse_ @ ищи статьи по WinPCap Изучаю родную документацию WinPCap... Есть непонятки... Вопрос: Можна ли, использую WinPCap, перехватывать исходящие пакеты, в которых содержится запрос браузера. Как это реализовать? Под перехватом здесь понимается буферизация тех пакетов, которые содержат нужные запросы браузера. В сеть они не идут! Они идут в сеть лиш после того, как юзер подтвердит надобность в запрашиваемом ресурсе (файле, странице и т.д.). Всем остальным пакетам - свобода действий. Перед прочтением документации был уверен, что это возможно. Теперь есть сомнения: возможно ли? |
Сообщ.
#45
,
|
|
|
Цитата sAshA20 @ Перед прочтением документации был уверен, что это возможно. Теперь есть сомнения: возможно ли? Нет. Обычно такого рода "глушилки" делаются либо на прокси, либо на шлюзе. |