Ошибка переполнения буфера
От: VCoder http://wxbar.sf.net
Дата: 01.03.04 12:21
Оценка:

Американская корпорация Advanced Micro Devices объявила о том, что процессоры Athlon 64 и Opteron отныне будут иметь встроенные функции защиты от некоторых типов компьютерных вирусов. Речь идет исключительно о тех вредоносных программах, которые для проникновения на уязвимую машину используют ошибку переполнения буфера.

При этом, однако, работать новая технология защиты будет только лишь в том случае, если на компьютере установлена операционная система Microsoft Windows ХР со вторым пакетом обновлений. Дело в том, что в состав второго сервис-пака для вышеназванной ОС будет включен так называемый модуль Data Execution Prevention, предотвращающий возможность использования ошибки переполнения буфера. Согласно заявлениям представителей софтверного гиганта, около половины всех патчей, выпущенных за последние два года, были бы не нужны, если бы новая технология защиты была предложена раньше.


Теперь собственно вопрос:
интересно каким образом осуществлена данная проверка?

Возьмем например такой фрагмент кода:
char *buff = new char[100];
... // здесь используем память
delete[] buff;


И как здесть проверять переполнение буфера?
Один из вариантов — это помещать после выделеной памяти сторожа (типа как это сделано для стека или для файла подкачки). Но такой подход должен сказаться на производительности.

У кого какие идеи по данному поводу?
... << RSDN@Home 1.1.3 stable >>

01.03.04 15:49: Перенесено модератором из 'C/C++' — ПК
С уважением,
Дмитрий.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.