An Introduction to Returned-Oriented Programming (Linux)

In 1988, the first buffer overflow was exploited to compromise many systems. After 20 years, applications are still vulnerable, despite the efforts made in hope to reduce their vulnerability. In the past, the most complex priority was discovering bugs, and nobody cared about writing exploits because it was so easy. Nowadays, exploiting buffer overflows is also difficult because of advanced defensive technologies. Some strategies are adopted in combination to make exploit development more difficult than ever like ASLR, Non-executable memory sections, etc. In this tutorial, we will describe how to defeat or bypass ASLR, NX, ASCII ARMOR, SSP and RELRO protection in the same time and in a single attempt using technique called Returned Oriented Programming.