Cueing up a calculator: an introduction to exploit development on Linux