Penetration Testing for Memory Corruption Vulnerabilities