https://www.merckedsecurity.com/blog/smashing-the-arm-stack-part-1