Извечный вопрос: NDIS или TDI?

Тема в разделе "WASM.NT.KERNEL", создана пользователем JustAGuest, 21 дек 2009.

  1. JustAGuest

    JustAGuest New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2009
    Сообщения:
    33
    Great
    z0mailbox
    Спасибо, товарищи!

    Great
    Очень был бы рад (уверен, что не только я) более подробной информации на эту тему, хотя бы на пальцах, "куда копать", как говорится...
    ЗЫ. Если это выходит за рамки топика, то прошу прощения, можно игнорировать.
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Я не сомневаюсь, что реализовать подобное можно для каких-то случаев, тем более что люди тут подтверждают этот факт. Но ты уверен, что оно нужно? Ведь тут проблемы вполне неиллюзорные можно огрести плюс потраченное время. Плюс непонятно что делать с приходящими пакетами, которые "левые", скажем так. Это навскидку. А вот TDI, в котором присутсвует такое понятие как пакеты запросов ввода/вывода (IRP) как раз такие вещи поддерживает сразу "из коробки". Т.е. если мы не руткит пишем какой-нибудь, то смысла просто нет.
     
  3. JustAGuest

    JustAGuest New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2009
    Сообщения:
    33
    Да, Вы правы!
    Все дело в том, что меня сильно смутила упомянутая Вами ситуация с попыткой установки фильтра в условиях наличия антивируса. Такая ситуация более чем вероятна. И очень не хочется при этом терять возможность, например, сообщения юзеру имени процесса...
    Если не останется другого выхода, то придется смириться, но хотелось бы перед тем "побарахтаться" :derisive:
     
  4. x64

    x64 New Member

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

    Кстати, я вот сейчас подумал по поводу проблемы с проксями. Можно реализовать "поплавок". Не самое красивое решение будет, но по-другому я не вижу, что ещё здесь можно сделать. Короче, суть в том, чтобы проверять периодически стек интересующих девайсов и смотреть кто наверху. При чём проверять можно но просто периодически, а по условию, например, можно на каждом запросе смотреть процесс-инициатор, если это ядро (System, 4), значит есть вероятность, что кто-то хитрый сидит сверху и мы должны проверить это. Смотрим, если наверху стека не мы, значит создаём ещё один девайс и аттачим в этот же стек, и о-па - сверху опять мы. При этом нужно не забыть функцию фильтра передать этому новому девайсу, а на всех остальных, которые наши ниже, тупо пропускать запросы ниже.

    С выгрузкой проблем не будет, с памятью тоже. Чем плоха схема эта, тем что как минимум один запрос такой фильтр всё таки будет пропускать. Хотя здесь ещё можно подумать, это ж всего лишь концепт. Ну и некрасиво немного, конечно, зато работать будет 100%.
     
  5. JustAGuest

    JustAGuest New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2009
    Сообщения:
    33
    Да, как вполне эффективное решение подходит. Думаю что-то подобное и стоит реализовать.
    Спасибо всем за разъяснения и помощь. Пора начинать БСОДы генерировать.