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