спрятать драйвер

Тема в разделе "WASM.NT.KERNEL", создана пользователем katrus, 14 авг 2007.

  1. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Можно ли как нить "спрятать" драйвер, так чтоб его не было в списке установленных драйверов, чтоб его нельзя было тривиальнум образом остановить и выгрузить. Например для пользовательских процессов подобного можно добится перехватив скажем ZwQuerySystemInformation, ZwTerminateProcess, ZwOpenProcess и их друзей. А вот как сделать что-то подобное для драйвера?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    ZwCloseProcess нет такого.
    защитится от выгрузки просто - не назначать DriverUnload.
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    обработать PsLoadedModulesListHead или как его там.. убрать модуль из списка
     
  4. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    Бросить в топку затею, так как найти можно практически все.
     
  5. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    EP_X0FF
    Да, верно, это игра в кошки мышки. Но если потратив несколько дней я смогу добится защиты против "дурака" или заставлю профессионала повозиться хоть час - для конкретного проекта над которым я работаю это стоит вложенных усилий.
     
  6. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    Как только ты начнешь прятать драйвер ты сразу же столкнешься с различными проблемами в плане совместимости. Может вместо прятанья драйвера его лучше залочить на диске, а имя отрандомить?
     
  7. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    EP_X0FF
    В смысле?
     
  8. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    Чтобы нельзя было открыть и посмотреть, что внутри. Как драйвер алкоголя sptd.
     
  9. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    а какие методы существуют для выгрузки драйвера который не определяет DriverUnload?
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А как ты выгрузишь драйвер, который этого не поддерживает? Это чревато бсодом изза неосвобождения таких ресурсов, как засплайсенные функции, подмененные адреса и т.п. Они будут указывать на выгруженный драйвер, что неминуемо ведет к бсоду.
    Чтобы выгрузить дров, нужно его реверсить и самому писать драйвер_анлоад, которая подчистит все за ним, если это возможно. Например считает оригинальный код засплайсенных функций с диска
     
  11. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    katrus

    В твоем случае в драйвер анлоад надо ввести функцию для проверки, чем была инициирована выгрузка. В связке приложение+драйвер это будет очень легко сделать.
     
  12. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    EP_X0FF
    Да я так и сделал. В принципе, для меня решение с DriverUnload удовлетворительное. Простое и дуракоустойчивое.