Всем доброго! Собственно вопрос в заголовке темы, я мельком пробежался по архивам и ничего путного не нашел, быть может кому-то есть что еще добавить? p.s.: для w2k и более позних версий.
Ок, обидно однако. Вообще-то, если даже это было возможно, то скоре всего пришлось бы писать что-то типа глобального перехватчика исключений, потому как желающих изменить защищаему область данных, более чем достаточно, и не факт что этот "красовеЦ" позаботиться об этом сам, а следовательно система будет падать как яблоки по осени.
О какой памяти речь? Если о ядерной, то начиная с ХР MmProtectMdlSystemAddress - сам не пробовал. В w2k видимо тоже можно, просто нет готовой функции. Само то ядро как-то это делает. Если по дизасму/исходникам полазить встречаются разные функции, например, MiProtectSpecialPool.
Four-F Ну а если будут писать со сброшеным wp битом? LuckyDevil Поясни что конкретно ты имел в виду (а то вопрос не однозначен). Тебе нужно изменить атрибуты доступа страницы, или сделать невозможной запись в какую-либо область памяти из ядра. Если нужно первое, то можно просто вручную править PTE, если второе - то придется обломиться.
PE386,Four-F спасибо за дискуссию, и так что же я хотел защитить, а защитить надо было всего-то навсего область памяти, где расположена STD таблица. Понимаю что это утопия, но вдруг у кого-то была подобного рода задача.
А ее уже защитили в 64 битных версиях прямо на уровне ОС. Алгоритм примерно такой - считается контрольная сумма для защищаемых участков памяти. Периодически она поверяется - при несовпадении выдается Bug Check 0x109
TarasCo Это не защита, а ее видимость. достаточно отреверсить и пропатчить код, чтобы ее обойти. Только не надо бросаться в рассуждения о трудоемкости и целесообразности этого, под защитой я понимаю принципиальную невозможность ЗАПИСИ в участок памяти, а не какой-либо контроль целостности.
Если речь идет о защите конректного (и не дешевого) программного продукта, можно разработать PCI девайс и ложить ядро программы в его память.
О да, это очень целесообразно. Может с каждым антивирусом поставлять аппаратную приставку к ЖД для слежения записи на него?