SCRAP: Architecture for signature-based protection from code reuse attacks