No-Execute-After-Read: Preventing Code Disclosure in Commodity Software
Return-oriented programming without returns