Software Defense: mitigating stack corruption vulnerabilties