Zero-Day Defense: Discovering and Removing Vulnerabilities throughProgram Customization and Fuzzing