LINUX.ORG.RU

История изменений

Исправление Forum0888, (текущая версия) :

Экспромтом.

Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.

Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована лишь для того кода в котором компилятор умеет добавить, код для проверки в процессе кодогенерации.

Кстати эту идейку можно проверить чисто программно.

Можно просто разработать API для проверки доступа к области памяти.

Исправление Forum0888, :

Экспромтом.

Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.

Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована лишь для того кода в котором компилятор умеет добавить, код для проверки в процессе кодогенерации.

Кстати эту идейку можно проверить чисто программно.

Можно и просто разработать API для проверки доступа к области памяти.

Исправление Forum0888, :

Экспромтом.

Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.

Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована лишь для того кода в котором компилятор умеет добавить, код для проверки в процессе кодогенерации.

Кстати эту идейку можно проверить чисто программно.

Исправление Forum0888, :

Экспромтом.

Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.

Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована лишь для того кода в котором компилятор умеет добавить, код для проверки в процессе кодогенерации.

Кстати можно эту идейку проверить чисто программно.

Исходная версия Forum0888, :

Экспромтом.

Добавляем в CPU два регистра, содержащие диапазон области памяти и
флаг на требование проверки операции доступа к ней.
При этом CPU для любой команды модифицирующей область должно
проверить не производится ли модификация памяти вне области.

Данные о сегментах есть.
Для реализации возможности проверки нужно добавить эту функциональность в кодогенератор компиляторов.
То бишь защита будет реализована для того кода в котором компилятор умеет добавить код в процессе кодогенерации.

Кстати можно эту идейку проверить чисто программно.