Я понимаю, что такое переполнение буфера. Как говорится в литературе, «переполнение буфера происходит, когда буфер фиксированной длины достигает своей емкости, и процесс пытается сохранить данные сверх этого максимального предела». Итак, я обращаюсь к областям памяти, которые находятся за пределами области данных, может быть, я получаю доступ к системной области. Поправьте меня, если я ошибаюсь, пожалуйста, посмотрите мой вопрос 1 в конце.
Кроме того, я нахожу это определение: «Переполнение корневого буфера - это переполнение буфера, предназначенное для получения привилегий root для системы».
Теперь мои вопросы
- Почему пользовательский процесс пишет в системной области памяти? Разве ОС не способна защитить себя или свою область памяти? Или, может быть, я ошибаюсь.
- Почему переполнение корневого буфера приводит к тому, что процесс получает привилегии root для системы? Потому что, насколько мне известно, вам нужно выполнить такие команды, как
su
илиsudo
или что-то подобное, а затем предоставить священный пароль для достижения этой цели.
Да, я уже взглянул на этот вопрос и отличный ответ.