1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
|
1 | |
ПС контроля за сетевым трафиком ОС Windows 7, 808.06.2016, 17:19. Показов 3796. Ответов 32
Метки нет (Все метки)
Здравствуйте,
Получил задание курсовой работы: ПС контроля за сетевым трафиком ОС Windows 7, 8. Реализовать сетевой драйвер собирающий статистику по каждому сетевому соединению (протокол, количество переданных и полученных байт для каждого процесса. Каким образом написать этот драйвер? Я думаю, что нужно использовать фильтр NDIS Filter Drivers Может кто-нибудь подскажет, кто писал уже что то подобное. Спасибо.
0
|
08.06.2016, 17:19 | |
Ответы с готовыми решениями:
32
Проблемы с трафиком в Windows 7 У ПК с Windows XP нет доступа к сетевым ресурсам на ПК с Windows 7 Ошибки с сетевым драйвером на Windows 10 Доступ к сетевым дискам Windows 7 |
Ушел с форума
|
|
08.06.2016, 22:16 | 2 |
Если нужна информация по процессам, то NDIS - не лучший выбор, потому что
на этом уровне стека Windows ее там уже не будет. Рекомендую остановиться на Windows Filtering Platform (WFP) Callout Drivers.
0
|
1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
|
27.08.2016, 16:00 [ТС] | 3 |
Убежденный, добрый день, где обычно пишут функцию регистрации системы FwpmEngineOpen0? Я так понимаю, что не в теле функции DriverEntry, а в каком-то другом месте. Интересует в каком.
Спасибо. Добавлено через 1 час 26 минут Убежденный, может лучше функцию FwpmEngineOpen0 вынести в отдельный файл?
0
|
Ушел с форума
|
|
27.08.2016, 17:46 | 4 |
FwpmEngineOpen0 - это юзермодная функция, ее обычно вызывают внутри
кода регистрации WFP-драйвера.
0
|
1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
||||||
27.08.2016, 19:20 [ТС] | 5 | |||||
Убежденный,
Вот, что я написал для начала:
Большое спасибо.
0
|
Ушел с форума
|
|
27.08.2016, 20:03 | 6 |
Код регистрации WFP-драйвера вообще должен быть вне драйвера.
То есть, внутри какого-то exe или dll, которые вызываются во время установки программы. А примеры есть в комплекте с WDK, они сейчас доступны онлайн: Windows-driver-samples https://github.com/Microsoft/W... er-samples И еще вот сюда можешь заглянуть, это, так сказать, "курс молодого бойца по WFP": Краткий обзор Windows Filtering Platform
0
|
1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
||||||
28.08.2016, 00:31 [ТС] | 7 | |||||
Убежденный, нашел следующий код, который регистрирует FwpmEngineOpen0.
Спасибо.
0
|
Ушел с форума
|
|
28.08.2016, 00:55 | 8 |
0
|
1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
|||||||||||
29.08.2016, 00:55 [ТС] | 9 | ||||||||||
Убежденный, у меня на данный момент имеется файл Installator.c.
Installator.c:
Я думаю, что нужно регистрировать фильтр на уровне Ethernet. Или я ошибаюсь? Спасибо. Добавлено через 4 минуты Например,
Спасибо.
0
|
Ушел с форума
|
|
29.08.2016, 10:21 | 10 |
Если фильтровать на уровне Ethernet, то информации по процессам не будет.
Я бы фильтровал где-то выше, например, на транспортном уровне (TCP,UDP).
0
|
1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
||||||
01.09.2016, 13:34 [ТС] | 11 | |||||
Убежденный, добрый день.
Я продолжил кодинг своего первого драйвера. Возник такой вопрос: для уровня FWPM_LAYER_STREAM_V4 при регистрации фильтра я выбрал следующее значение Condition.fieldKey = FWPM_CONDITION_DIRECTION. Я сделал правильный выбор или нет? Можно было выбрать еще несколько констант: FWPM_CONDITION_FLAGS FWPM_CONDITION_IP_LOCAL_ADDRESS FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE FWPM_CONDITION_IP_LOCAL_PORT FWPM_CONDITION_IP_REMOTE_ADDRESS FWPM_CONDITION_IP_REMOTE_PORT
0
|
Ушел с форума
|
|
01.09.2016, 13:39 | 12 |
Ну если ты хочешь, чтобы твой callout вызывался только на входяший или
только на исходящий трафик, тогда да, правильный.
0
|
1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
|
01.09.2016, 14:09 [ТС] | 13 |
Убежденный, когда я регистрировал sublayer, я не присвоил GUID переменной Sublayer.subLayerKey. Из множества значений, думаю что подойдет вот это: FWPM_SUBLAYER_INSPECTION.
Поправь, если я ошибаюсь. Спасибо. Список всех GUID:
0
|
Ушел с форума
|
|
01.09.2016, 14:14 | 14 |
Если ты используешь один из предопределенных GUID-ов для subLayerKey, то будь
готов к тому, что callout будет вызываться не всегда (если на этом же subLayer сидит чужой фильтр). Я всегда генерирую свой GUID для subLayerKey - это надежнее. Ссылка по теме: Filter Arbitration https://msdn.microsoft.com/en-... 2147217396
0
|
1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
||||||
01.09.2016, 14:59 [ТС] | 15 | |||||
Убежденный, посмотри, если не сложно. Файл с функциями регистраций готов. Нет ли чего-нибудь противоречивого в этом файле? Спасибо.
Installator.c:
0
|
Ушел с форума
|
|
01.09.2016, 16:00 | 16 |
Тут куча различных утечек.
К примеру, если FwpmProviderAdd0 вернет ошибку, кто тогда вызовет FwpmEngineClose0? Да, и я бы обернул весь код регистрации WFP в транзакцию - FwpmTransactionBegin0 и т.п.
0
|
1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
|||||||||||
01.09.2016, 19:37 [ТС] | 17 | ||||||||||
Убежденный, после некоторых исправлений получился вот такой код:
0
|
Ушел с форума
|
|
02.09.2016, 08:20 | 18 |
Транзакции в WFP - это не только удобный способ безопасно откатиться в случае ошибки.
Иногда бывает нужно зарегистрировать несколько callout-ов, фильтров и т.д., которые логически связаны друг с другом, причем нельзя, чтобы первые начали работать без вторых. И вот тут как раз и помогает транзакция, потому что при использовании begin/commit запуск всех новых компонентов выполняется синхронно, а не вразнобой.
0
|
1 / 1 / 1
Регистрация: 04.11.2014
Сообщений: 97
|
|
02.09.2016, 15:15 [ТС] | 19 |
Убежденный, начал реализацию classify функции. Возник вопрос, откуда по каждому соединению взять протокол, количество переданных и полученных байт для каждого процесса?
Скорее всего протокол можно достать из массива по адресу &pInFixedValues, а количество переданных и полученных байт для каждого процесса из FlowContext. Спасибо.
0
|
Ушел с форума
|
|
02.09.2016, 15:19 | 20 |
О каких протоколах речь?
В ClassifyFn приходит буфер с данными, можно пройтись по этому буферу и посчитать количество байт. ID процесса тоже в ClassifyFn получить не сложно (на тех уровнях, где ID есть, разумеется).
0
|
02.09.2016, 15:19 | |
02.09.2016, 15:19 | |
Помогаю со студенческими работами здесь
20
Глюки с сетевым диском в сети Windows 7 Что относится к сетевым средствам Windows XP? сетевым мостом в VirtualBox банится фаерволом в windows 7 Локальная сеть Windows 7 + XP доступ к сетевым ресурсам Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |