You Can Run but You Can't Read: Preventing Disclosure Exploits in Executable Code
Return-oriented programming without returns