Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

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

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

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

- -------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

char buf[FIXED]; на

static char buf[FIXED], или

buf= (char *)malloc (FIXED);

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





Дата публикования: 2014-11-04; Прочитано: 258 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...