Senior Security Consultant/Penetration Tester | CEO
ROP = Return-oriented Programming
Beim Bufferoverflow stößt man oft auf Hindernisse und Schutzmechanismen, die einem das Leben schwer machen. ROP hilft dir mit sogenannten ROP-Gadgets (findet man z.B. mit einem Tool wie Ropper) selbst eine ROP-Chain aufzubauen, die diese Hindernisse und Schutzmechanismen umgeht.
Ein Beispiel: Es gibt einen Stack, der nicht ausführbar ist. Mithilfe von ROP könnten wir die MProtect-Funktion nehmen und den Stack wieder executable machen. Wir lassen also verschiedene Sequenzen durchlaufen, bis wir den Stack wieder benutzen können.
Man braucht sehr lange bis man ROP verstanden hat, jedoch sollte man nie aufgeben.