Software Defense: mitigating heap corruption vulnerabilities