Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 925

Return-Oriented Programming

Was ist Return-Oriented Programming?

Return-Oriented ProgrammingReturn-Oriented Programming (ROP) ist eine Exploit-Technik des Code-Reuse, die kurze, mit RET endende Instruktionsfolgen verkettet, um beliebige Berechnungen ohne neuen Code auszufuehren.


Hovav Shacham praesentierte ROP 2007 als Umgehung von DEP/W^X. Der Angreifer beschaedigt den Stack und legt eine Kette von Adressen ab, die je auf kurze, mit RET endende Gadgets zeigen. Nach jedem Gadget popt RET die naechste Adresse; aus vorhandenen ausfuehrbaren Bytes (libc, Bibliotheken, Programm) entsteht eine Turing-vollstaendige Berechnung. Varianten sind JOP (Jumps), COP (Calls) und SROP (Signal-Frames). ROP war der Hauptantrieb fuer ASLR, CFI, Stack Canaries, Shadow Stacks, Intel CET und memory-safe Sprachen; Gegenmassnahmen zielen auf Gadget-Verfuegbarkeit, Kontrollfluss-Integritaet oder Memory Safety im Quellcode.

Beispiele

  1. 01

    Exploit verkettet pop-rdi/syscall-Gadgets in glibc, um execve("/bin/sh") aufzurufen.

  2. 02

    Kernel-Exploit nutzt KASLR-Leak und ROP zu commit_creds(prepare_kernel_cred(0)).

Häufige Fragen

Was ist Return-Oriented Programming?

Return-Oriented Programming (ROP) ist eine Exploit-Technik des Code-Reuse, die kurze, mit RET endende Instruktionsfolgen verkettet, um beliebige Berechnungen ohne neuen Code auszufuehren. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.

Was bedeutet Return-Oriented Programming?

Return-Oriented Programming (ROP) ist eine Exploit-Technik des Code-Reuse, die kurze, mit RET endende Instruktionsfolgen verkettet, um beliebige Berechnungen ohne neuen Code auszufuehren.

Wie funktioniert Return-Oriented Programming?

Hovav Shacham praesentierte ROP 2007 als Umgehung von DEP/W^X. Der Angreifer beschaedigt den Stack und legt eine Kette von Adressen ab, die je auf kurze, mit RET endende Gadgets zeigen. Nach jedem Gadget popt RET die naechste Adresse; aus vorhandenen ausfuehrbaren Bytes (libc, Bibliotheken, Programm) entsteht eine Turing-vollstaendige Berechnung. Varianten sind JOP (Jumps), COP (Calls) und SROP (Signal-Frames). ROP war der Hauptantrieb fuer ASLR, CFI, Stack Canaries, Shadow Stacks, Intel CET und memory-safe Sprachen; Gegenmassnahmen zielen auf Gadget-Verfuegbarkeit, Kontrollfluss-Integritaet oder Memory Safety im Quellcode.

Wie schützt man sich gegen Return-Oriented Programming?

Schutzmaßnahmen gegen Return-Oriented Programming kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.

Welche anderen Bezeichnungen gibt es für Return-Oriented Programming?

Übliche alternative Bezeichnungen: ROP, Code-Reuse-Angriff, Return-to-libc.

Verwandte Begriffe

Siehe auch