Форум программистов, компьютерный форум, киберфорум
Программирование драйверов
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/40: Рейтинг темы: голосов - 40, средняя оценка - 4.53
14 / 13 / 1
Регистрация: 30.09.2011
Сообщений: 160

Сетевая фильтрация url и ip адресов в wfp

03.11.2014, 22:13. Показов 8370. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Решил изучить технологию WFP (Windows Filtering Platform) и написать драйвер режима ядра для фильтрации url-адресов и ip-адресов с портами.

Что нужно конкретно:
  • Фильтрация url-адресов по get запросу и возможность блокировать их, выдавая пользователю причину и информацию (например, страница заражена и тп)
  • Фильтрация и тот же функционал, что выше, но для ip-адресов и портов (например 93.88.100.15:1001). Пока что ipv4
  • Поиск по содержимому пакета и сравнение с шаблонами базы (например, заблокированных сайтов из файла hosts)
  • Взаимодействие с сервисом или модулем (программой) в юзермоде

Собственно, прочитав советы товарища Убежденный, то понял, что для версий <=ХР нужно юзать TDI,NDIS или LSA, но так как я ориентируюсь писать как минимум, =>Win 7, то нашел технологию WFP.

Почитав msdn, я немного прояснил структуру этого WFP, но, я не понял ничего про то, КАК реализовать драйвер и из каких библиотек\заголовочных файлов брать нужные функции.

В частности, пока мне не понятно вот этот момент :
достаточно установить фильтр в
правильное место сетевого стека и передавать в юзермодное приложение все,
что фильтр там нахватает. Ну а приложение может обрабатывать полученный
трафик как угодно, не мешая нормальной работе браузеров и других программ.
Помогите пожалуйста, примерами кода (пускай даже не полного), КАК использовать драйвер наглядно, и годной литературой (из литературы я активно изучаю:
Кликните здесь для просмотра всего текста
Руссинович, Соломон "Внутреннее устройство Windows 2000";
Свен Шрайбер "Недокументированные возможности Windows 2000";
Дж.Рихтер "Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows"; http://www.ozon.ru/context/detail/id/116668/
Walter Oney "Programming the microsoft windows driver model"; http://www.ozon.ru/context/detail/id/3137491/
Солдатов "Программирование драйверов Windows"; http://www.ozon.ru/context/detail/id/28515104/
"Даниель А. Нортон. Написание драйверов для Windows"; http://www.ozon.ru/context/detail/id/28515104/
P.Orwick, G.Smith "Developing Drivers with the Windows Driver Foundation"; http://www.ozon.ru/context/detail/id/3963383/ live
ISBN 978-5-9775-0185-9, 978-5-7502-0364-2, 978-0-7356-2374-3; 2008 г.
О.Зайцев "Rootkits, SpyWare/AdWare, Keyloggers & BackDoors. Обнаружение и защита (+ CD-ROM)"; http://www.ozon.ru/context/detail/id/2811431/
)

Варианты вот такого =>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Add filter to block traffic on IP V4 for all applications. 
//
FWPM_FILTER0      fwpFilter;
FWPM_SUBLAYER0    fwpFilterSubLayer;  
 
RtlZeroMemory(&fwpFilter, sizeof(FWPM_FILTER0));
 
fwpFilter.layerKey = FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4;
fwpFilter.action.type = FWP_ACTION_BLOCK;
 
if (&fwpFilterSubLayer.subLayerKey != NULL)
    fwpFilter.subLayerKey = fwpFilterSubLayer.subLayerKey;
 
fwpFilter.weight.type = FWP_EMPTY; // auto-weight.
fwpFilter.numFilterConditions = 0; // this applies to all application traffic
fwpFilter.displayData.name = L"Receive/Accept Layer Block";
fwpFilter.displayData.description = L"Filter to block all inbound connections.";
       
printf("Adding filter to block all inbound connections.\n");
result = FwpmFilterAdd0(engineHandle, &fwpFilter, NULL, NULL);
        
if (result != ERROR_SUCCESS)
    printf("FwpmFilterAdd0 failed. Return value: %d.\n", result);
else
    printf("Filter added successfully.\n");
для меня мало очевидны в виду того, что тут только кусок кода, а я не могу понять целостной картины.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.11.2014, 22:13
Ответы с готовыми решениями:

Фильтрация и сравнение IP wia WFP
Доброго времени суток! Благодаря товарищу Убежденный, разобрался немного в теме и наваял код. Подскажите пожалуйста, как мне исправить...

Фильтрация URL адресов в Cisco 2911
Есть access-list. Нужно ограничить доступ в социальные сети определенным ip адресам данного ACL. Как это лучше сделать? Cisco 2911,...

Сколько можно добавить URL адресов в свою созданную Группу URl?
Добрый день. Подскажите пожалуйста, сколько можно добавить URL адресов в свою созданную Группу URl? На купленной лицензии VS...

22
 Аватар для beats
101 / 42 / 9
Регистрация: 09.12.2012
Сообщений: 597
13.01.2015, 16:25
Студворк — интернет-сервис помощи студентам
ВОТ ЭТО ДА!
Убежденный, Вам можно целую книгу писать на эту тему)
Очень полезные труды, респект
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
13.01.2015, 17:48
Спасибо за добрые слова !
Но на самом деле сложность всех этих WFP/TDI/LSP/NDIS сильно преувеличена.
Любой, кто садится писать на их основе какой-нибудь очередной фаервол,
спам-фильтр, род.контроль или проксификатор, очень быстро понимает, что
это лишь верхушка айсберга, причем маленькая, а за ней лежат такие дикие
пласты прикладных проблем (не все их которых вообще имеют решение), что
придется засучить рукава и пахать, пахать много месяцев...
1
14 / 13 / 1
Регистрация: 30.09.2011
Сообщений: 160
08.04.2015, 17:27  [ТС]
Подтверждаю слова Убежденного!
Не подумайте, я с ним не сговорился, просто реально на себе проверил справедливость его слов. Лично у меня прикладные проблема были начаты уже с особенностей С и дальше по кернелу)) но благодаря советам Убежденного и МСДН, я отчасти решил проблемы =) теперь вот пробую дописать то, что нужно...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.04.2015, 17:27

Сетевая фильтрация
Есть электромагнитная катушка от бытового прибора. Потребляемая мощность прибора 15 ватт. Прибор был расчитан на работу по 10-15 минут с...

Организация URL адресов
Добрый день. Столкнулся с такой проблемой ... Как правильно организовать URL ? Допустим есть сайт ... www.site.com есть меню...

Фильтрация MAC адресов в модеме DLINK 2540U
Добрый день. Есть модем DLINK 2540U, настроенный в режиме роутера. Возможно ли в настройках модема задать фильтрацию мас адресов, чтобы...

Смена URL адресов страниц
Имеется сайт (интернет-магазин) В индекс попал порядка месяца назад... постепенно дорабатывается. Захотелось установить ЧПУ на сайт....

Создание дружественных адресов URL
Добрый день Пытаюсь на сайте с помощью mod_rewrite переделать URL. RewriteRule ^(+)/?(*)/?(*)/?(*)/?$...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru