Return-oriented Programing
Exploiting Buffer overflow with ROP
Buffer overflow attack
Why ROP?
What do we need for ROP?
What is Return-Oriented-Programming?
What is Return-Oriented-Programming?
Possible issues
Basic Information
Example stack structure
Example – the basic scenario
Passing an argument (or more..)
What is Return-Oriented-Programming?
What is Return-Oriented-Programming?
What is Return-Oriented-Programming?
What is Return-Oriented-Programming?
What are ROP gadgets?
How to find these gadgets?
What can we do with ROP Gadgets?
Gadgets
Gadgets
This gadget pops one value out of the stack and increments %esp
Gadgets chaining
This gadget pops one value out of the stack and increments %esp
Gadgets
Useful gadgets
Our enemies
A quick win…
A quick win…
movl %class, (%home)�ret