The Single Byte That Kills Your Exploit: Understanding Endianness