"наткнулся" на stack canary, в сущности в задании этого нету, но мне интересно стало... оригинальный elf на x64 не запускается, соотвественно я скомпилил под ubuntu 16 LTS x64 (виртуалка) под gcc, а там по дефолту stack canary и классический buffer overflow (функция gets())... но происходит интересная вещь, при выходе за границы программа просто зацикливается, при этом если посмотреть на разметку стека в gdb, то запишется инфа только в оригинальный буфер и overflow на деле никакого не происходит, вот мне интересно, что это? мои кривые руки или есть еще какая-то защита от подобного рода атак?
Надо, думаю, покурить реализацию гетса. Видимо, там в гцц как-то избегают овервлова
Обсуждают сегодня