Re[2]: Совершенный код. Трудности перевода или неясная мысль
От: D1g174LM4n14c  
Дата: 07.11.05 15:38
Оценка:
Здравствуйте, Ignoramus, Вы писали:

DLM>>Этот подход может очень серьезно повлиять на безопасность. Если в программе возникнет переполнение буфера, злоумышленник сможет узнать адрес метода (объекта)-обработчика. Таким образом, при переполнении буфера во время работы приложения использовать этот способ небезопасно.


I>Наверное имеется в виду, что злоумышленник может намеренно вызвать какое-нибудь исключение, к примеру — переполнение буфера и наблюдая поведение программы (очевидно, в дизассемблере ), получить относительный адрес обработчика этого исключения. И поскольку этот обработчик в данном случае единственный, то достаточно его перезаписать своим кодом и вуаля — можно делать (теоретически) с программой все что хочешь. Я эту фразу так понял, хотя не совсем представляю как сделать описанное на практике .


Интересно, как его (обработчик) переписать?
Я понимаю, что можно адрес обработчика ПОДМЕНИТЬ.
Но это возможно только (поправьте?) в ситуации, когда обработчик является ОБЕРТКОЙ кода, то есть, его адрес имеется в стеке и его можно при переполнении перезаписать... Хотя смысла все равно не вижу.

DLM>>а во-вторых, чем это может быть опасно?


I>По-моему относительно недавно была обнаружена дыра в безопасности Internet Explorer кажется как раз на переполнении буфера основанная...


А чем ЗНАНИЕ АДРЕСА обработчика может помочь злоумышленнику?..
Что-то ум мой терзает, а что — не пойму
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.