Control-flow integrity principles, implementations, and applications
Address obfuscation: an efficient approach to combat a broad range of memory error exploits