Winpkfilter lightweight filter что это

Любым программам для мониторинга сети, инструментам безопасности необходим перехват сетевых пакетов. В данном топике я расскажу о двух библиотеках для перехвата: SharPcap и WinPKFilter.

SharpPcap

SharpPcap — библиотека для .NET, которая позволяет перехватывать пакеты. По сути, это обертка над библиотекой Pcap, которая используется во многих популярных продуктах. Например, сниффер Wireshark, IDS Snort.
С SharpPCap также поставляется замечательная библиотека для парсинга пакетов — Packet.Net.

Packet.Net поддерживает следующий протоколы:

  • Ethernet
  • LinuxSLL
  • Ip (IPv4 and IPv6)
  • Tcp
  • Udp
  • ARP
  • ICMPv4 и ICMPv6
  • IGMPv2
  • PPPoE
  • PTP
  • Link Layer Discovery Protocol (LLDP)
  • Wake-On-LAN (WOL)

Работать с библиотекой достаточно просто:

// метод для получения списка устройств
CaptureDeviceList deviceList = CaptureDeviceList.Instance;
// выбираем первое устройство в спсике (для примера)
ICaptureDevice captureDevice = deviceList[0];
// регистрируем событие, которое срабатывает, когда пришел новый пакет
captureDevice.OnPacketArrival += new PacketArrivalEventHandler(Program_OnPacketArrival);
// открываем в режиме promiscuous, поддерживается также нормальный режим
captureDevice.Open(DeviceMode.Promiscuous, 1000);
// начинаем захват пакетов
captureDevice.Capture();

Теперь в обработчике события device_OnPacketArrival мы можем работать с пакетом:

static void Program_OnPacketArrival(object sender, CaptureEventArgs e)
<
// парсинг всего пакета
Packet packet = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data);
// получение только TCP пакета из всего фрейма
var tcpPacket = TcpPacket.GetEncapsulated(packet);
// получение только IP пакета из всего фрейма
var ipPacket = IpPacket.GetEncapsulated(packet);
if (tcpPacket != null && ipPacket != null)
<
DateTime time = e.Packet.Timeval.Date;
int len = e.Packet.Data.Length;

// IP адрес отправителя
var srcIp = ipPacket.SourceAddress.ToString();
// IP адрес получателя
var dstIp = ipPacket.DestinationAddress.ToString();

// порт отправителя
var srcPort = tcpPacket.SourcePort.ToString();
// порт получателя
var dstPort = tcpPacket.DestinationPort.ToString();
// данные пакета
var data = tcpPacket.PayloadPacket;
>
>

Так же библиотека позволяет создавать пакеты и отправлять, работать с дампами и многое другое. Без проблем работает на mono. Для более подробной информацией прошу на CodeProject. У SharpPcap есть конкурент Pcap.net. По описанию возможности совпадают. Хотя, судя по вопросам и ответах на различных форумах, создание пакетов в нем легче.

WinPKFilter

WinPKFilter — NDIS драйвер для перехвата пакетов. Поддерживаются различные операционные системы:x/ME/NT/2000/XP/2003/Vista/2008/Windows 7/2008R2. Плюсом драйвера является то, что он позволяет модифицировать и блокировать пакеты. Для некоммерческих проектов библиотека бесплатна.
Для удобной работы с драйвером предоставляется библиотека. На сайте можно скачать обертки для этой библиотеки для следующих языков — C#, Delphi, VB, MS VC++, C++ Builder.
Работать с WinPkFilter сложнее, чем SharpPcap, нужны хорошие знания в работе с неуправляемым кодов и маршалинге. Да и размер кода получается намного больше. На официальном сайте можно задать вопрос на который Вы без проблем получите от автора (кстати русский). Здесь выложил пример программы, которая блокирует пакеты в которых содержится слово «porn».

Спасибо за чтение.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Проблема появилась ВНЕЗАПНО месяц 1 назад.
Суть такова: при включении ПК устанавливается Wi-fi соединение и работает на максимальной скорости (150 Мбит/сек).
Спустя некоторое время скорость снижается до 1 мбит/сек и остается такой.
Сменил роутер, сменил провайдера, сменил два адаптера, ВСЕ РАВНО ТАКАЯ ХЕРНЯ!
По проводу от роутера и просто напрямую скорость всегда стабильна и максимальна.
Если дело в компе, то что именно не работает?

. для себя и для всех

среда, 26 мая 2010 г.

Сегодня постучался товарищ, просил помочь с hosts. Дело было в том, что как не правь этот файл, системой он не обрабатывался. Перепробовав кучку вариантов, проблему решить все же удалось.
О вариантах решения проблем в таких ситуациях сегодня и пойдет речь.

Во первых, попробуйте закрыть все браузеры и выполнить в консоли команду:Данная команда очищает dns-кеш.

Во вторых, проверьте в "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters" параметр "DataBasePath", он должен иметь тип "REG_EXPAND_SZ" и значение "%SystemRoot%System32driversetc".

В третьих
, убедитесь, что к файлу есть доступ на чтение для всех юзеров.

В четвертых, попробуйте переименовать файл hosts в, например, hosts.bak. Потом создайте новый файл hosts, откройте его блокнотом и напишите туда ручками (именно ручками, а не скопируйте):(porno.com тут приведен для примера, реально надо писать тот сайт, который вы хотите заблокировать)

В пятых, убедитесь, что запущена служба DNS-клиент. Если не запущена, то запустите и поставьте ее в автозапуск.

ЗЫЖ Товарищу помог четвертый пункт.

UPD: Не забывайте, что сначала должны идти IP, а потом, через пробел или таб, имя хоста.

Кому ничего не помогает советую заглянуть в настройки подключения сетевухи. У меня там рядом с настройками Тсp/ip нашлась такая вот дрянь: "lplir lightweight Filter (x64 edition)". Снимаем галку и радуемся жизни.
Что интересно, гугл ничего про дрянь не знает. Откуда оно взялось не ясно.

Информация с сайта http://angel2s2.blogspot.com/. Если Вы читаете информацию на другом сайте, пожалуйста свяжитесь с автором сайта http://angel2s2.blogspot.com/.

Похожие статьи

44 коммент.:

Спасибо angel2s2 до такого варианта было реально тяжело додуматься 🙂

Благодарю за советы, помогло. А то ДВА дня парился с этой проблемой. Добавляю твой сайт в избранные.

Рад, что оказалось полезным и рад за вас, что помогло 🙂

Спасибо, дружище! 4 пункт помог!

Рад, что помогло 🙂

4 пункт однозначно решает. Настраивал несколько дней Апачи, не мог понять почему не работают Vhosts (c NameVirtualHost), а все дело в hosts оказалось. Непонятно только, почему hosts перестал работать. Кстати про вписывание руками директив: я все из старого скопировал, и работает, так что видимо можно и без лишнего рукописного ввода обойтись.

Да, я это тоже заметил. У всех комментаторов именно этот пункт.

У меня два предположения почему перестал работать:
1. Файл должен быть в формате ASCII, а он изначально в "UNICODE".
2. Внешнее воздействие: вирус, hotfix либо какой-нибудь антивирус. В смысле, изменил файл из ASCII в "UNICODE".
Ничего из этого я, конечно же, не проверял. Это только мое предположение.
Тут под "UNICODE" я имею ввиду следующее: если сделать экспорт из regedit какой-нибудь ветки, а потом полученный файл открыть, например, в gvim, то будет видно, что между буквами есть еще какие-то символы. Вот такой формат я и имел ввиду. Вроде это UTF-16. Хотя я точно не знаю.

> Кстати про вписывание руками директив
Ручками предложил вписать, чтобы избежать случайных косяков с кодировкой и непечатаемыми (служебными?) символами.

привет,а что мне не делать,если у меня на оборот не заход в контакт,одноклассники!!я уже заходил на host всё делал по инструкции,и всё равно не магу зайти на сайты(( хотя нет в этих строках на счёт того что сайты заблокированы. что делать? заранее спасибо!

Привет. Скорее всего у тебя есть скрытый системный файл hosts, а тот, что видишь ты, называется hosts.txt, но так как в проводнике отключено отображение расширений, то ты видишь просто hosts.
Скачай FAR, включи в настройках отображение скрытых и системных файлов, перейди в папку C:WindowsSystem32driversetc. Если увидишь файл hosts.txt значит все так и есть. Удаляй его и правь файл hosts (который без расширения). Так же обязательно проверь комп на вирусы (есть такая зараза, которая этот трюк проворачивает): лучше скачай Dr.Web LiveCD или Kaspersky Rescue Disk на другом компе, запиши на CD диск, загрузи свой комп с этого диска и проверь на вирусы (так на много надежнее, чем из винды, даже из безопасного режима, проверять).

спасибо огромное, ничего не помогало, но 4-й пункт это и правда хоть и нелепо, но работает

Спасибо, и мне 4 пункт помог =)

Спасибо! проблема решилась 4-м пунктом! ))

В основном проблема с файлом hosts в том, что вирусы/трояны заменяют букву "o" латинскую на букву "о" русскую. Вот система и не видит этот файл. А в проводнике всё смотрится окейно.

У меня было такое в свежепроинсаллированной ХРюшке (лицензионной). Не помню только какой там СП был.

Спасибо большое способ переименования помог!

Убил на поиск проблемы полтора часа , перепробовал всё что можно .

. спасибо , помог тоже 4-й пункт

спасибо большое, думал пропаду..

не пашет нихера, семерка, зараза, достала уже..

сижу значит пишу уже который час DynDNS-сервер на .cmd в связке с Netcat, для того чтобы слушать на порту можно было, всё отлично кроме одного — не потдягивают эти драные окна нихера! и руками и скриптом и головой уже в монитор этот фаел и обновлял и руками создавал и пересоздавал и делал через move, и через rename, и ХРЕН!

если найдешь решение или знаешь что-то из того, что тут
не описано — буду офигенно рад если кинешь на мыло!

dasknix много_животных почта_на_гмайл-точка-ком

..ну и все описанные способы, конечно, тоже
перепробовал — не помогло, иначе бы не писал.

офонареть, бьюсь руками об глаза!11
у меня реверсом хосты и ипы были, а не сначала ипы
всем спасибо, пойду покурю.

Да. Такое тоже бывает 🙂
Отдыхай больше 😉

Блин, у меня проблема месяца два уже. Правда раньше не к спеху было, ну я и забил, а сейчас острая необходимость — и сижу бьюсь. Респект, сработал 4 пункт 🙂

Спасибо ГРОМАДНОЕ
Чего только не делал до этой статьи
Помогло создание нового файла hosts

Кому ничего не помогает советую заглянуть в настройки подключения сетевухи. У меня там рядом с настройками Тсp/ip нашлась такая вот дрянь: "lplir lightweight Filter (x64 edition)". Снимаем галку и радуемся жизни.

Что интересно, гугл ничего про дрянь не знает. Откуда оно взялось не ясно.

Спасибо, добавил в пост.

подскажите пожалуйста, можно ли с помощью hosts заблокировать приложения вконтакте? лично у меня не получается. другие адреса блокируются

Можно. Но нужно знать IP адрес, на котором это приложение висит. Дело в том, что сами приложения, как правило, хостятся не на серверах вконтакта, а на сервере разработчика.

Все дело в том, что реальный файл хостс скрыт (сделайте его видимым с помощью соответствующей настройки в свойствах папки) и тогда будете вносить изменения в действующий файл.

Хостс перестал работать после чистки программой Dr.Web CureIt.
Ни что из вышеперечисленного его не воскресило работу файла.
Виндовс XP SP2.
Посоветуете, что либо или дешевле для нервов просто переустановить систему?

Манори, я знаю только один случай, когда делаешь правку файла hosts, а эффекта нет.
В папке было два файла — hosts и hosts.txt, но т.к. в проводнике был отключен показ скрытых файлов и их расширений, пользователь видел только один файл — hosts.txt, но видел его как hosts. Поэтому hosts и не работал.

Roma Shagrov, у меня включен показ скрытых файлов(лечил от вируса-скрывалки папок флешку, которую у соседей к "динозавру" полному вирусов подключал, из-за чего, собственно и использовал Dr.Web CureIt). Скрытых файлов там нет, и он работал до обработки антивирусником Dr.Web CureIt.

Файл имеет атрибут "системный"? Какие права на файл (владелец и тп)?
У меня с cure it такого никогда не было.

А разве эта фича не в Win7 появилась?
Хотя, может, я-нуб, незнающий куда смотреть.

Манори, точно не скажу. Давно винду не юзаю, линуксоид.

яснопонятно. я б тож давно перешёлна линукс, да не охото с эмуляторами возиться. приходится терпеть всю эту фигню ради игор. Т.Т

А у меня проблема оказалась в папках etcSave1 etcSave2, в которых я хранил копии hosts.
Пока их не убрал, основной hosts не обрабатывался.

Этот комментарий был удален автором.

Откатить систему помогает. Понятно, что поздно с советом, но может другим поможет после лечения cureit

Olga A, откат системы не всегда поможет, т.к. изменения в системе, связанные с hosts могли произойти давно, а понадобилось, что в hosts менять, только сейчас.

помогло только после nbtstat -R с правами адиминистратора + ipconfig /flushdns

Не вышло у меня все проверил не один раз и как назло когда реально понадобилось, такая магия что без бубна не разберешься, на 7, 10 проверил все гуд, а вынь 8*64 ни вкакую час времени потрачено бесполезно (.

Оцените статью
Ремонт оргтехники
Добавить комментарий