, Поскольку канарейка проверяется перед выполнением команды ret, ваш эксплойт потерпит неудачу, если вы перезапишете канарейку (что в большинстве случаев вам нужно сделать, чтобы перезаписать адрес возврата в стеке). Поскольку ROP и Return to Lib c также перезаписывают адрес возврата, оба метода не будут работать.

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

Делает ли канарейка такие атаки невозможными?

Ответы на вопрос(2)

Ваш ответ на вопрос