По каким принципам в Windows выставляется защита страниц виртуальной памяти только что загруженного исполняемого модуля? И может ли она менятся в процессе исполнения без вызова изнутри этого модуля функций типа VirtualProtect ?
Здравствуйте, 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