Зворотно-орієнтоване програмування
Зворотно-орієнтоване програмування (Return-oriented programming, ROP) — це типова атака повторного використання коду, під час якої зловмисник спрямовує потік керування через наявний код для досягнення зловмисних цілей. Атака ROP — це вдосконалена версія атаки stack-smashing. Переповнення стекового буфера відбувається, коли програма виконує запис в адресу пам’яті в стеку викликів програми поза передбаченою структурою даних. Зазвичай це стосується буферів із фіксованою довжиною.
ROP — це метод експлуатації вразливостей, який дає змогу виконати код у цільовій системі. Отримавши контроль над стеком викликів, зловмисник контролює потік керування наявної довіреної програми, яка виконується на комп’ютері, і маніпулює ним для виконання завдань, що не передбачені програмою.