дизассемблерный код, раскрывающий сущность механизма Ret Range Checking
Усилилась и защита локальных переменных. Теперь перед вызовом функции по указателю, Stack-Shield убеждается, что она находится в пределах сегмента кода (см. листинг 9):
; // в eax
находится указатель на функцию
cmp eax, offset shielddatabase
; // проверяем границы указателя
jbe
.LSHIELDCALL ; // если указатель в границах, прыгаем на вызов функции
mov eax,1 ; // указатель на функцию выходит за допустимые границы
movl ebx,-1 ; // возможно, он был хакнут
int 80h ; // завершаем выполнение программы
.LSHIELDCALL:
call
[eax] ; // вызываем функцию по указателю