Разработка network sniffer

Тема в разделе "WASM.NETWORKS", создана пользователем kralex, 13 июл 2006.

  1. kralex

    kralex New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    10
    Привет господа Гуру.
    Решил написать сетевой sniffer. Изучив некоторые статьи по реализации фильтрации пакетов, у меня появилось несколько вопросов:
    1) Можно ли в kernel-mode узнать какой процесс владеет портом с которого или на который направляется пакет ? Если да то как ?
    2) Является ли подход Windows 2000 Filter-Hook Driver в принципе применимым - ведь нет гарантии что на компе не стоит ни один аналогичный фильтр (из DDK, только один такой hook может стоять). Можно ли сделать так что при установке моего Filter-hook driver-a любой существующий удалялся? Какова вообще вероятность что Filter-hook driver уже установлен? Есть ли какой то полезный софт (firewall-i, antivirusi, и т.д.), которые используют такой подход и работа которых нарушится при установке моего hooka, поверх их hooka? Такой подход меня в принципе заинтересовал т.к. имеется уже готовое решение (NT Kernel Resources, winpkflt) используещее этот подход и предоставляющее API user mod-у.
    3) Можно ли написать такой сетевой driver-фильтр, который гарантированно будет лежать в стеке ниже всех firewall-ов ? Как я понял из всех известных подходов наиболее "низким" является NDIS intermidiate driver. Будет ли он гарантированно лежать ниже всех firewall-ов?
    4) Вопрос вытекающий из 3-го. Можно ли написать такой driver, который сам обрабатывает пакеты присланные из внешнего мира (сохраняет данные на HDD и т.д.) не передавая их вверх по стеку так, чтобы такой приём пакетов был гарантированно невидимым для firewall-ов?

    Заранее спасибо.
     
  2. Folk Acid

    Folk Acid New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2005
    Сообщения:
    432
    Адрес:
    Ukraine
    kralex
    1) Можно :)
    2) Применим, вероятность редкая
    3) Имхо самый низкий уровень - мост от драйвера виртуальной сетевой карточки до драйвера физической карточки. Последний нужно как-то прятать от непосредственного использования драйвером NDIS. Как это сделать - отдельный вопрос, но в-принципе это возможно
    4) Можно

    Сейчас набегут более знающие товарищи, может что-то добавят :)
     
  3. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    2. Выкинь Filter-Hook Driver как хлам. (нехочу повторяться 4-й раз)
    3. Спасёт NDIS IM драйвер. Его можно размещать на любом уровне IM драйверов, но OutPost перехватывает главные ф-ции для работы с сетью и поговорить об его обходе лучше к Ms-Rem ;)
    4. Да
     
  4. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Я ничего не скажу :)

    З.Ы. сделать это все можно, но не так просто как кажеться.
     
  5. kralex

    kralex New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    10
    Спасибо за респонсы.
    Т.е. я так понял filter-hook drivers лучше не использовать? По той причине что в системе он может быть только одын?
    По поводу 1го, 2го и 3го вопросов - нельзя ли поподробнее? Может линки какие-то имеются?
     
  6. kralex

    kralex New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    10
    Т.е. по поводу 1го, 3го и 4го вопросов - нельзя ли поподробнее ...
     
  7. kralex

    kralex New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    10
    Ещё вопрос:
    SteelRat
    Насколько я знаю его надо дигитально подписывать у MS, иначе будет появлятся confirmation dialog. Можно это как-то обойти? Кроме того из статьи на этом же сайте сказано что NDIS IM driver сложны и неудобны в разработке. Действительно ли так всё критично (добавлю что опыта в разработке driverov, да и вообще kernel-development и меня нету)?