You Can Run but You Can't Read: Preventing Disclosure Exploits in Executable Code
Just-In-Time Code Reuse: On the Effectiveness of Fine-Grained Address Space Layout Randomization