Я пытаюсь понять, возможны ли и как возможны эксплойты программирования return-into-libc и return-ориентированного программирования, если используется канарейка.
Канарейка будет помещена в стек между возвращаемым значением и переполняемым буфером, и ее необходимо будет перезаписать, чтобы изменить возвращаемое значение на местоположение библиотечной функции или вычисления. Канарейки существуют с 1997 года (StackGuard), а ROP - это метод, впервые представленный в 2007 году (Shacham).
Делает ли канарейка невозможным эти типы атак?