Можно ли защитить облать памяти от записи в режиме ядра???

Тема в разделе "WASM.NT.KERNEL", создана пользователем LuckyDevil, 30 авг 2006.

  1. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Всем доброго!
    Собственно вопрос в заголовке темы, я мельком пробежался по архивам и ничего путного не нашел, быть может кому-то есть что еще добавить?


    p.s.: для w2k и более позних версий.
     
  2. PE386

    PE386 New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    127
    В общем случае нельзя (но на процессорах поддерживающих аппаратную виртуализайию, можно).
     
  3. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Вот заноза :dntknw:....
    Неужто никак?
     
  4. PE386

    PE386 New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    127
    Именно никак, без полной эмуляции ринг0 и работы с железом (как сделано в wmvare).
     
  5. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Ок,
    обидно однако.
    Вообще-то, если даже это было возможно, то скоре всего пришлось бы писать что-то типа глобального перехватчика исключений, потому как желающих изменить защищаему область данных, более чем достаточно, и не факт что этот "красовеЦ" позаботиться об этом сам, а следовательно система будет падать как яблоки по осени.
     
  6. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    О какой памяти речь? Если о ядерной, то начиная с ХР MmProtectMdlSystemAddress - сам не пробовал. В w2k видимо тоже можно, просто нет готовой функции. Само то ядро как-то это делает. Если по дизасму/исходникам полазить встречаются разные функции, например, MiProtectSpecialPool.
     
  7. PE386

    PE386 New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    127
    Four-F
    Ну а если будут писать со сброшеным wp битом?

    LuckyDevil
    Поясни что конкретно ты имел в виду (а то вопрос не однозначен). Тебе нужно изменить атрибуты доступа страницы, или сделать невозможной запись в какую-либо область памяти из ядра.
    Если нужно первое, то можно просто вручную править PTE, если второе - то придется обломиться.
     
  8. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    PE386
    А... ну если вообще защититься, то да - никак. Кроме сброса wp, есть ещё даблмаппинг.
     
  9. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    PE386,Four-F
    спасибо за дискуссию, и так что же я хотел защитить, а защитить надо было всего-то навсего :) область памяти, где расположена STD таблица. Понимаю что это утопия, но вдруг у кого-то была подобного рода задача.
     
  10. TarasCo

    TarasCo New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2005
    Сообщения:
    106
    А ее уже защитили в 64 битных версиях прямо на уровне ОС. Алгоритм примерно такой - считается контрольная сумма для защищаемых участков памяти. Периодически она поверяется - при несовпадении выдается Bug Check 0x109
     
  11. PE386

    PE386 New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    127
    TarasCo
    Это не защита, а ее видимость. достаточно отреверсить и пропатчить код, чтобы ее обойти. Только не надо бросаться в рассуждения о трудоемкости и целесообразности этого, под защитой я понимаю принципиальную невозможность ЗАПИСИ в участок памяти, а не какой-либо контроль целостности.
     
  12. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    PE386, согласен с вами на все 100%.
     
  13. Folk Acid

    Folk Acid New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2005
    Сообщения:
    432
    Адрес:
    Ukraine
    Если речь идет о защите конректного (и не дешевого) программного продукта, можно разработать PCI девайс и ложить ядро программы в его память.
     
  14. DLag

    DLag New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2006
    Сообщения:
    14
    О да, это очень целесообразно.
    Может с каждым антивирусом поставлять аппаратную приставку к ЖД для слежения записи на него?