RawIP в kernel mode

Тема в разделе "WASM.NT.KERNEL", создана пользователем slesh, 6 фев 2009.

  1. slesh

    slesh New Member

    Публикаций:
    0
    Регистрация:
    6 фев 2009
    Сообщения:
    214
    Уже долгое время бьюсь над этим вопросом.
    С TCP и UDP через TDI проблем нет ни каких. Но вот с RAWIP начинаются глюки.
    Если идти по аналогии то работа с rawip такаяже как и с udp
    пытался открыть \\Device\\RawIp - ничего не дает.
    Глянул как это дело обстоит в ReactOS - там открывается \\Device\\RawIp\\protocol
    где protocol - номер протокола который будет юзаться. типа 17 udp итд итп.
    Но открыть \\Device\\RawIp\\6 (TCP) не удалось.
    Пытался глянуть как работает в этом плане винда.
    Если из юзермода работа с raw сокетами осуществляется через
    Socket->SetSockOpt(sock, IPPROTO_IP, IP_HDRINCL, @bOpt, SizeOf(bOpt))->SendTo
    То было замечено что данные шлются на устройство \\Device\\RawIp\\255
    Тогда возникает проблема в том как сделать SetSockOpt в kernel mode.

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

    P.S. Не предлогать спускаться до NDIS. Если такое возможно через AFD то буду рад услышать как именно )
     
  2. SashaTalakin

    SashaTalakin New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    261
    На сколько я помню, это даже не нужно дизассемблировать (есть в win2k.rar (если нет этого архива, обязательно поищи в Сети)), там должны быть все ответы на твои вопросы в частности как создавать сокеты в режиме ядра и т.д.

    Я когда-то делал одну простую функцию которая делала сокет из ядра и какую-то с ним операцию. Правда потом я сделал эти действия по-другому поэтому есть вероятность что та функция не заработала :)
     
  3. slesh

    slesh New Member

    Публикаций:
    0
    Регистрация:
    6 фев 2009
    Сообщения:
    214
    win2k.rar - если ты имеешь в виду исходники, то они у меня есть, но там всё в основном для юзермода. Тут главное создать подобие СЫРОГО сокета через TDI или AFD.
     
  4. SashaTalakin

    SashaTalakin New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    261
    для юзермода да, но там ведь все сводится в обращению к устройствам драйвера, что вобщем-то неважно откуда делать из юзермода или кернел мода.
     
  5. sambd

    sambd New Member

    Публикаций:
    0
    Регистрация:
    14 дек 2007
    Сообщения:
    60
    offtop: поделитесь сорцами 2к в пм