About this Learning Path

Who is this for?

This is an advanced topic for software developers interested in understanding how memory vulnerability-based exploits work on AArch64 and how to defend against them.

What will you learn?

Upon completion of this learning path, you will be able to:

  • Analyze the stack frame layout to derive which field in user input overwrites the return address stored on the stack.
  • Build a basic end-to-end exploit by changing the return address to an attacker-controlled value.


Before starting, you will need the following:

  • An Arm computer running linux with Docker installed.
  • Some familiarity with reading and writing basic C code and AArch64 assembly code.
  • Some familiarity with running linux command line commands.
  • Some familiarity with using a gdb debugger.