IpFilterDriver

Тема в разделе "WASM.NETWORKS", создана пользователем Saint German, 12 май 2005.

  1. Saint German

    Saint German New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2003
    Сообщения:
    222
    Есть такая штука, ознакомится можно

    Network Drivers: Windows 2000 DDK

    1.1 About a Filter-hook Driver,

    на codeproject есть пример,

    http://www.wasm.ru/article.php?article=netfilter

    тоже немного описано, и пример есть.



    Поиск по форуму тоже ничего не принес:

    http://wasm.ru/forum/index.php?action=vthread&forum=12&topic=7628



    - ни одного ответа!

    Я не очень буду удивлен, есть и в моем топике не будет ни одного ответа:).



    Вопросы:

    1. есть ли еще информация касательно этой темы?

    2. вроде все сделал правильно, использую события

    для определения окончания запроса устройству, как на codeproject, в других примерах этого нет - поэтому фильтр ставится через раз.

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

    Может это из-за фаервола? Или я чего-то непонимаю?

    Нужна информация как правильно анализировать пакеты.

    3. еще проблема получения приложением данных от драйвера,

    если приложение должно реагировать в реальном времени.

    Используя совместно обьект событие, драйвер получая пакет,

    передает его приложению - не выход, так как оно просто не успевает обработать посылку, как тут же приходит новая.

    Копить в буфере несколько пакетов, а потом передавать - тоже не то, так как нереалтайм.



    Цель - простейший сниффер, с разбором пакетов в юзер-моде.
     
  2. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    Вот выдержка из DDK

    It is not recommended to implement a firewall-hook driver (or firewall driver) for Microsoft® Windows® XP and later versions of the operating system. Если firewall включен в XP, то и облом, т.к. может стоять только один hook. Далее в том же DDK

    To provide firewall functionality on Windows XP and later, you should create an NDIS intermediate miniport driver to manage packets sent and received across a firewall. For information on creating an NDIS intermediate miniport driver, see NDIS Intermediate Drivers.

    Т.к. сниффер тот же firewall (различия в операциях над пакетами) то делай выводы :)

    По 2-му пункту только предположение :) Эти пакеты могут быть испорчены в каналах, служебные пакеты виндов и прочее, а драйвер их всё равно принимает и отдает выше стоящим модулям, которые отсеиваются ими.

    По 3-му пункту предположений нет :dntknw:
     
  3. nobody

    nobody New Member

    Публикаций:
    0
    Регистрация:
    8 сен 2004
    Сообщения:
    32
    Адрес:
    Afghanistan
    Во-первых хотелось бы узнать версию твоей винды.

    1. На wasm.ru и codeproject есть рабочие примеры.

    2. Возможно не запущен драйвер IpFilterDriver - его надо запускать вручную. А данных внутри пакета может и не быть - тебе приходит только заголовок. Хотя у меня на Win2k SP4 есть и данные.

    3. Данные в реальном времени передать не удастся - callback-функция работает на IRQL == 2. Но для сниффера этого и не надо. Пакеты можно разобрать и потом. А вообще этот интерфейс предназначен для файрволов. Простейший же сниффер можно написать используя Winsock2. Пример есть на sources.ru.
     
  4. Saint German

    Saint German New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2003
    Сообщения:
    222
    ясное дело, что драйвер запущен, не обязательно это делать вручную, с этим проблем нет.

    Используя rawsockets можно, но фаерволы блокируют это.

    Тестировал на Win2k SP4 - данные есть, но они искаженные.
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Saint German

    Так ) чтоб ловить пакеты на совем компе можно и фаервол вырубить ) проблема чтоли ? ради науки вырубить фаервол .

    Да кстати ну создашь ты Ndis protocol driver ! и что ? ты думаешь он будет получать все пакеты приходящие на интерефейс ? А счего ты взял что твой протокольный драйвер будет самым нижним в списке этих протокольных драйверов ? А Фаервол я уверен стоит самым первым и хрен каму отдаст какой нить пакет (PS смотри картинку в DDK есть схема "Intermediate Driver in the NDIS Driver Stack"

    очень наглядно все паказано)



    Ниже всех могут быть только реальные пацаны (с) 90210



    а вообще если на счет доков то я вот читаю DDK и смотрю сорцы (packet из win2000 и ndisuio из winXP) и неплохо.. все проясняется потихонечку ..
     
  6. Saint German

    Saint German New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2003
    Сообщения:
    222
    Задача не вырубить фаервол, это действительно можно сделать, но речь не о том. Просто пытаюсь сделать сниффер, и оперативно реагировать на некотроые пакеты в юзер-моде, причем он не перехватывающий запросы к tdi или ndis, а используя этот (IpFilterDriver) интерфейс.

    Задача научиться анализировать пакеты, понять как устроены аналоги, сделать лучше.
     
  7. StatusError

    StatusError New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2005
    Сообщения:
    34
    Скажи пожалуйста, а как запустить этот грешный драйвер фильтр ( IpFilterDriver )???
     
  8. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    В статье же есть
    "net start ipfilterdriver
    instdrv filter D:\projects\asm\filter\filter.sys"
    :derisive: