Стек драйверов :: возможно ли контролировать положение фильтров?

Тема в разделе "WASM.NT.KERNEL", создана пользователем UTeX, 20 ноя 2007.

  1. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    Например нужно обернуть весь стек фильтров, поставив свои фильтры в начале и в конце стека.

    Основные вопросы такие
    возможно ли совершить такую обертку?
    возможно ли контролировать положение своих фильтров в стеке? т е есть ли возможность удерживать всегда 1 и последнюю позиции в стеке фильтров?

    наверное очень глупые вопросы, но все-же ответьте пожалуйста )
     
  2. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    как вариант, просто прохучить DriverObject.MajorFunction верхних и нижний драйверов в стеке.
     
  3. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    Marik
    Допустим я поставил на них хук

    Как проследить за тем чтобы хук не сняли?
    И как проследить за тем чтобы драйвера всегда перехватывали именно 1 и последний в стеке фильтры?

    И есть ли еще какие-то предложения по обертке?
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Читать доку
     
  5. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    censored
    ясно
     
  6. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Снять его могжет аналогичный драйвер. Точнее не снять, а наложиться сверху, т.е. твой драйвер так или иначе всеравно получит управление. Если конечно у перехватываемого драйвера нет какой нить супер пупер защиты ;)
    Спускайся вниз по стеку драйверов DeviceObject.DeviceObjectExtension.AttachedTo пока AttachedTo не станет = 0
    вверх DeviceObject.AttachedDevice тоже пока не упрешься в 0.
    Сверху вот только в процессе работы могут приаттачится еще устройства. Отловить то это можно, сам не делал потому толком ничего не скажу.
     
  7. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    у кого нибудь есть идеи по поводу того как это отловить?
     
  8. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    UTeX
    теоретически - да
    на практике фильтр на файловую систему даже детачить, не то что выгрузить, не удается
    дома поиграться - сойдет, в продакшен коде за такие вещи яйца поотрывают, ибо бсодить будет со страшной силой
    ты сможешь аккуратно переключиться с одного положения в стеке на другое под шквальным потоком ИРП-шек ?
     
  9. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Повесить фильтр в reinitialize процедуре и поставить ему флаг инициализации, чтоб к нему больше никто не атачился
     
  10. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
    tylerdurden
    Сенкс