AUSPICE: Automatic Safety Property Verification for Unmodified Executables [chapter]

Jiaqi Tan, Hui Jun Tay, Rajeev Gandhi, Priya Narasimhan
2016 Lecture Notes in Computer Science  
Verification of machine-code programs using program logic has focused on functional correctness, and proofs have required manuallyprovided program specifications. Fortunately, the verification of shallow safety properties such as memory and control-flow safety can be easier to automate, but past techniques for automatically verifying machine-code safety have required post-compilation transformations, which can change program behavior. In this work, we automatically verify safety properties for
more » ... nmodified machine-code programs without requiring user-supplied specifications. We present our novel logic framework, AUSPICE, for automatic safety property verification for unmodified executables, which extends an existing trustworthy Hoare logic for local reasoning, and provides a novel proof tactic for selective composition. We demonstrate our fully automated proof technique on synthetic and realistic programs, and our verification completes in 6 hours for a realistic 533-instruction string search algorithm, demonstrating the feasibility of our approach.
doi:10.1007/978-3-319-29613-5_12 fatcat:a5qyfpmt3jfn3khjhshqv5l3ge