return-oriented programming

Fusion Challenges – level02 Write-up

TL;DR: Exploit-mitigation techniques such as Address Space Layout Randomization, in conjunction with Data Execution Prevention, make executing traditional shellcode a non-trivial challenge. A common way to bypass aforementioned protections is to use Return-Oriented Programming, which reuses small pieces of code that end in a return instruction commonly referred to as a gadget. This article covers the thoughts and concepts in regards to solving this challenge.