Защита памяти
От: gamunculus  
Дата: 10.01.07 12:21
Оценка:
По каким принципам в Windows выставляется защита страниц виртуальной памяти только что загруженного исполняемого модуля? И может ли она менятся в процессе исполнения без вызова изнутри этого модуля функций типа VirtualProtect ?
Re: Защита памяти
От: SergH Россия  
Дата: 10.01.07 12:48
Оценка:
Здравствуйте, gamunculus, Вы писали:

G>По каким принципам в Windows выставляется защита страниц виртуальной памяти только что загруженного исполняемого модуля?


Точно не знаю, формат PE нужно подробно вспоминать. Но по смыслу — секция с данными RW, всё остальное — R. Вопрос только в том, как он находит секцию с данными — по зарезервированному имени или в формате для этого предусмотрены флаги.

G>И может ли она менятся в процессе исполнения без вызова изнутри этого модуля функций типа VirtualProtect ?


Только если кто-то извне вызовет.
Делай что должно, и будь что будет
Re: Защита памяти
От: gear nuke  
Дата: 10.01.07 16:01
Оценка:
Здравствуйте, gamunculus, Вы писали:

G>По каким принципам в Windows выставляется защита страниц виртуальной памяти только что загруженного исполняемого модуля?


При создании секции (в терминах Win32 API — file mapping) с флагом SEC_IMAGE, устанавливаются атрибуты стираниц в соответствии с флагами из заголовка секций PE файла.

G>И может ли она менятся в процессе исполнения без вызова изнутри этого модуля функций типа VirtualProtect ?


VirtualProtect — это всего лишь VirtualProtectEx с хендлом процесса -1 (NtCurrentProcess). Последняя функция может быть вызвана и из любого другого процесса.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.