![]() |
eXeL@B —› Вопросы новичков —› Доступ из драйвера к общему ресурсу |
Посл.ответ | Сообщение |
|
Создано: 13 декабря 2019 07:51 · Личное сообщение · #1 Добрый день ! У многих защитных программ, как правило, есть свой драйвер режима ядра. Этот драйвер нацелен на управление определёнными ресурсами системы, но что если к этому ресурсу обратиться другой драйвер и изменит параметры каких либо полей( скажем структуры eeprocess в ядре )? Как происходила бы работа двух драйверов за общий системный ресурс?спасибо ![]() |
|
Создано: 13 декабря 2019 08:40 · Личное сообщение · #2 |
|
Создано: 13 декабря 2019 08:59 · Личное сообщение · #3 |
|
Создано: 13 декабря 2019 09:31 · Личное сообщение · #4 На одном поле нормально никогда не выиграть. Либо ты выше, типа ринг0-ринг3. Либо смирись, что в пролёте. ![]() |
|
Создано: 13 декабря 2019 09:40 · Личное сообщение · #5 |
|
Создано: 13 декабря 2019 12:10 · Личное сообщение · #6 |
|
Создано: 13 декабря 2019 12:26 · Поправил: plutos · Личное сообщение · #7 AlexsandrS пишет: Можете посоветовать какие то исходники или литературу Есть куча разных драйверов, миллион типов ресурсов. берите и читайте: "Developing Drivers with the Windows Driver Foundation (Developer Reference)" by Penny Orwick или "Programming the Microsoft Windows Driver Model (2nd Edition) (Developer Reference)" by Walter Oney. В сети легко найти. ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 13 декабря 2019 12:29 · Личное сообщение · #8 AlexsandrS Касперский, для грамотного криптованого файла, по сей день представляет решето. Допущу, возможно глупую, мысль. Но, что мешает остановить, деинсталлировать драйвер. Тогда никакого конфликта, по сути, не будет. Думаю, что в механизме препятствия удаления или остановки драйвера, ничего сверхъестественного нет. Возможно ошибаюсь, т.к. не было нужды ковыряться в потрохах каспера ![]() ![]() |
|
Создано: 13 декабря 2019 13:17 · Личное сообщение · #9 |
|
Создано: 13 декабря 2019 13:46 · Личное сообщение · #10 |
|
Создано: 13 декабря 2019 15:09 · Личное сообщение · #11 |
|
Создано: 13 декабря 2019 15:11 · Личное сообщение · #12 |
|
Создано: 13 декабря 2019 15:54 · Личное сообщение · #13 |
|
Создано: 14 декабря 2019 02:03 · Личное сообщение · #14 BlackCode Чисто гипотетически мешает то, что ваш драйвер не подписан, и на продакшене не загрузится вовсе. Но, если предположить, что проблема решена, дальше Касперский хукнет NtLoadDriver, и может не разрешить вашему драйверу загрузиться. После загрузки, если удалось всё же, нужно понимать, что никто не отменял многопоточность. В частности, добавляются потоки ядра, Work Items, целый набор колбэков, и много всего, где Касперский перехватит код и будет мешать работать другому драйверу. Да и проверять свои хуки тоже будет. Так что придётся напрячь булки, чтобы прям вот отключить ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 14 декабря 2019 09:34 · Поправил: BlackCode · Личное сообщение · #15 ARCHANGEL На счет подписи, это очевидно и для х64 обязательно. Я писал об выгрузки драйвера перед загрузкой своего. Выгрузить можно из юзермода, остановкой сервиса с последующим удалением. Права админа только нужны. А вообще, не зная полного ТЗ, невозможно четко выстроить алго решения задачи. Не удивлюсь, что для решения поставленного ТЗ, а именно получения конечного результата, вообще не нужно лезть в ядро. Я вообще, рассматриваю драйвера как крайнюю меру. И если она оправданна. ![]() |
|
Создано: 14 декабря 2019 21:17 · Личное сообщение · #16 > Как происходила бы работа двух драйверов за общий системный ресурс? В отличие от юзер режима, где есть эксклюзивная среда для каждого процесса, в кернел иначе. Модуля работают совместно и синхронно разделяя ресурсы. У них к примеру общее адресное пространство, ну в общем говоря. А авера нельзя отключить, их фильтры не имеют функционала для выгрузки, потому что это не нужно. ----- vx ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Доступ из драйвера к общему ресурсу |