Software defense: mitigating common exploitation techniques