Путь сетевых пакетов

Тема в разделе "WASM.NT.KERNEL", создана пользователем _Juicy, 13 янв 2012.

  1. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    На сетевую карту пришел пакет данных, для определенности допустим, что ICMP.
    Как узнать, кто из драйверов его получит, кто будет обрабатывать, кто пропустит дальше, кто дропнет? Интересует примерный алгоритм получения их списка.
    Обратно, windows отправила некий пакет. Как выяснить, кто инициализировал отсылку и кто в ней участвовал?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Насколько мне изестно такого логирования нет. Оно по-моему и не нужно.
     
  3. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    бежит по улице собака. как узнать что она думает и где будет через час?
     
  4. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Допустим, эта собака бежит там регулярно и есть возможность законфирмить ее пробежку, откатить собаку назад и даже порыться у нее в мозгах.
     
  5. TermoSINteZ

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

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Squash
    Курите сетевую подсистемы винды. Хотяб в Руссиновиче почитайте как оно и что там (глава "Поддержка сетей").
     
  6. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Руссинович выкурен. Там все весьма размыто... или ориентировано на тех, кто уже имеет истинное знание :)
     
  7. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    есть сомнение, что его получит драйвер устройства ??? (то есть минипорт)
    сетевая_карта->минипорт->драйверы_протоколов(в порядке регистрации. ну напр tcp/ip)->ну и тсп порт, то есть приложение.
    может я не понял вопроса?
     
  8. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    ndis.sys точно получит.
    получить их список ,думаю, можно перехватом процедур этого драйвера и записью в лог, куда дальше пошел пакет.
     
  9. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    goga2007

    Воот, вы правильно поняли, но меня интересуют тонкие подробности, если их кто знает.
    В каком виде и через какие процедуры его получит минипорт? И ведь ndis получит его раньше минипорта, правильно?
    В какой очередности его получат промежуточные драйверы? Все ли драйвера протоколов его получат? Куда он пойдет по тди?

    Да, и есть ли вероятность, что его получит еще кто-то в обход ndis?
     
  10. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Я думаю, на данном этапе тебе следует открыть документацию и прочитать вообще что такое NDIS, что такое минипорты, драйвера протоколов и т.д.
     
  11. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Ок, босс.
    Документация == wdk help, верно?

    To all: Еще советы будут? :)
     
  12. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Да, помимо этого я бы ещё посоветовал прочитать, что вообще такое NDIS, а то все как-то думают, что это ndis.sys и кроме протокольных драйверов там ничего нет, но NDIS это всё таки нечто большее, целая спецификация как-никак. Конечно, с точки зрения практики написания сетевых драйверов под Windows это всё может и не пригодиться, но для общего развития не помешает, я бы сказал.
     
  13. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Как раз таки писать мне пока ничего не надо, а
    ссылочками поделишься?
     
  14. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    вот интересная страничка (на цифирьки можно не смотреть)
    http://msdn.microsoft.com/en-us/library/windows/hardware/ff556916(v=VS.85).aspx
    а еще в иду загруженный ndis.sys. как еще нет? тогда скорее заггружаем и смотрим, как это делает он. особенно обращаем внимание на процедуру NdisMRegisterMiniportDriver.

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

    пс: вы же не хотите копать траншеи. тогда копайте код.
     
  15. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Ясен пень, но для того и форумы, чтоб попользоваться и чужими сведениями, ежели они есть ;)
     
  16. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Squash
    Не как не определишь, только эвристиком, что является через одно место так как NDIS является дровом другого преднозначения ... более того , информацию об запросах на получения NDIS формирует самостоятельно и отдает выше стоящему драйверу ... еще куча левелов которые весят выше NDIS и вправе убивать стек(редирект на второй поток с копированием контекста отправки данных то и есть конекта потока не будет ) вообще вам не сюды это точно!. NDIS это протокол(адаптер)..

    Вообщем Winsock Kernel, TDI вам туды копать..
     
  17. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Туда и копаю, но мне нужен полный путь.