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