Посылка спуфнутых IP пакетов из драйвера ядра

Тема в разделе "WASM.NT.KERNEL", создана пользователем WellFellow, 22 май 2010.

  1. WellFellow

    WellFellow New Member

    Публикаций:
    0
    Регистрация:
    22 май 2010
    Сообщения:
    1
    Доброго времени суток.

    Приём езернет фрэймов драйвером ядра можно реализовать протокольным драйвером NDIS. Но при посылке пактов нужно знать MAC адресса хоста и гейта, и я сейчас не знаю, как их получить. В каких структурах данных данных ядра храняться ARP таблица, IP гейтвэя, IP\MAC интерфейсов? Доступ к этим структурам нужен для конструирования езернет фрэйма для отправки. Как послать спуфнутый IP пакет из драйвера ядра? Как я понимаю, TDI для этого не подходит, а через NDIS посылаются езернет пакеты - не IP.

    Буду благодарен за ответ.
     
  2. JhanGhuangxi

    JhanGhuangxi New Member

    Публикаций:
    0
    Регистрация:
    15 апр 2010
    Сообщения:
    31
    Ээээ, а что гугл уже забанили? Эти данные получаются посылкой спец IOCTL-запросов для соответствующих сетевых девайсов. Они у меня есть, но тебе я их не дам, я жадный )

    Да ладно? Ссылку на источник ереси можно привести?
    Эта фраза выдает человека, который ни разу на написал ни одного NDIS-драйвера, или по крайне мере не слышал про сетевую модель OSI.
    Мое мнение - учи матчасть, на твоем уровне решение сабжевой задачи пока не реально.
     
  3. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    Полагаться на структуры и IOCTL - весьма сомнительное удовольствие, которое может меняться с каждым апдейтом или драйвером железного сетевого адаптера. Гораздо удобнее анализировать входящий и исходящий трафик и эвристически эти данные получать напрямую из фреймов. К тому же, например при работе с NDISWAN, в случае динамической смены адресов, это можно отследить, иначе - нет (а не отследив динамической смены адресов, работа такого драйвера будет эпизодической).