Лекция: Самым переполнив любой из потенциальных буферов. Дело в том, что начиная с некоторой длины такие

строки могут не вызывать необходимого переполнения буфера, ' а приводить к другим ошибкам и

Иногда вообще никак не проявляться в работе программы. Иначе говоря, хакер, готовя переполнение

Буфера, ограничен максимальным размером кода, который он сможет выполнить. Тем не менее

Разумно подбирать длину буфера, начиная с больших величин.

— -------------------------------------------------------------

Осталось подытожить, какие операционные системы могут подвергаться технологии переполнения

буфера. Явно или неявно, но мы предполагали, что:

_ параметры функций передаются через стек;

_ адрес возврата также помещается в стек; ' локальные переменные располагаются в стеке;

_ стек <растет> вниз;

_ данные в стеке могут интерпретироваться как команды;

_ должны существовать процессы или программы, имеющие уязвимый

Код, подобный функции process_data();

' некоторые процессы или функции должны иметь высокие привилегии. Очевидно, что этим условиям

Удовлетворяет большинство ОС, в том числе UNIX и Windows NT.

И напоследок — переполнение буфера в стеке является тривиально используемой уязвимостью. Однако,

Если пытаться избавиться от таких уязвимостей простым переписыванием строк кода типа

char buf[FIXED]; на

static char buf[FIXED], или

buf= (char *)malloc (FIXED);

(то есть убирая буферы из стека, чтобы невозможно было перезаписать адрес возврата), это не приведет к

еще рефераты
Еще работы по информатике