Обратный адрес может быть до shellcode+nop sled
или после.Например, если вы пишете в переменную, закрывающую верхушку стека, вам, возможно, придется написать nop sled+shell code
после адреса возврата (EIP), потому что может не хватить места.
Однако сани NOP всегда будут рядом с кодом оболочки.Причина в том, что вы используете nop-сани, чтобы сделать цель вашего шелл-кода максимально большой.Если ваш EIP указывает + = 100 байт из кода вашей оболочки, то вам нужно использовать nop-сани размером более 100 байт, чтобы гарантировать, что вы достигнете своей цели.Таким образом, NOPs + return_address + shellcode
недействительно.Обычная строка эксплойта будет выглядеть следующим образом:
JUNK + return_address + NOPs + shellcode
И, конечно же, атака в стиле "return-to-libc"
не требует шелл-кода или nop-салазок.
Этот упрощенный эксплойт, основанный на переполнении буфера, не будет работать в современной системе.Разрушение Alpeh-One Stack For Fun и Прибыль больше не работает из-за зон NX, канареек стека и ASLR, которые по умолчанию установлены в Windows и Linux.
Вы должны получить копию: