Я прочитал об атаке переполнения буфера и хотел узнать, может ли его изменить, если сменить процессор, чтобы он отказался выполнять инструкцию, которая не находится в области кода? thanksКак преодолеть атаки переполнения буфера?
0
A
ответ
1
Обычно это делается путем установки бит без выполнения на странице памяти или сегменте (например, стек) в современных процессорах. Это помогает избежать некоторых переполнений на основе стека, но не является 100% -ным доказательством безвредности.
+2
Примечательно, что это предотвращает выполнение кода, вставляемого в стек. Например, поскольку переполнение буфера может переписать указатель возврата, система по-прежнему уязвима для [возврата в libc-атаку] (http://en.wikipedia.org/wiki/Return-to-libc_attack). –
Nah. Просто попробуй проверить свои массивы. 'snprintf()', 'fgets()' и т. д., а 'sizeof' - ваши друзья. –
@userXXX, если вы ** действительно ** не позволяете чему-либо идти дольше, чем предполагалось, то вы в значительной степени отсортированы, даже без написания трюка для записи XOR (что все разумные ОС делают ** в любом случае ** OS X и Linux, но, конечно, не Windows ...) –