Исправление Forum0888, (текущая версия) :
Экспромтом.
Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.
Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована лишь для того кода в котором компилятор умеет добавить, код для проверки в процессе кодогенерации.
Кстати эту идейку можно проверить чисто программно.
Можно просто разработать API для проверки доступа к области памяти.
Исправление Forum0888, :
Экспромтом.
Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.
Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована лишь для того кода в котором компилятор умеет добавить, код для проверки в процессе кодогенерации.
Кстати эту идейку можно проверить чисто программно.
Можно и просто разработать API для проверки доступа к области памяти.
Исправление Forum0888, :
Экспромтом.
Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.
Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована лишь для того кода в котором компилятор умеет добавить, код для проверки в процессе кодогенерации.
Кстати эту идейку можно проверить чисто программно.
Исправление Forum0888, :
Экспромтом.
Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.
Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована лишь для того кода в котором компилятор умеет добавить, код для проверки в процессе кодогенерации.
Кстати можно эту идейку проверить чисто программно.
Исходная версия Forum0888, :
Экспромтом.
Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.
Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована для того кода в котором компилятор умеет добавить код в процессе кодогенерации.
Кстати можно эту идейку проверить чисто программно.