Using Formal Methods to Eliminate Exploitable Bugs