Вы можете сделать это в ОС UNIXish с комбинацией __attribute__((aligned (PAGESIZE)))
и mprotect
. В Windows, я думаю, есть эквивалент mprotect
, но он также ограничен одной страницей памяти.
Причина, по которой невозможно защитить вещи с более высокой степенью детализации, заключается в том, что доступ к памяти осуществляется аппаратным, а не программным обеспечением. Было бы очень медленно, если бы каждый доступ к памяти требовал прохождения некоторой структуры данных, чтобы проверить, защищена ли страница.