Abstract

This paper presents an overview of tools and techniques that can be used to detect potential vulnerabilities and design flaws in computer programs by applying mathematical knowledge in solving Boolean satisfiability (SAT) problems. SMT (Satisfiability Modulo Theories) algorithms check satisfiability of given logical formulas with regards to some background theory, so we can say that SMT represents an abstraction of general SAT theory. If a computer program can be presented as a logical expression, we can use SMT process to discover input values that can lead it to an inconsistent state. Obtaining logical structures from programming code can be done by symbolic execution techniques, which transform program execution flow to Boolean expressions suitable for analysis using SMT solving software. This paper proposes usage of Binary Analysis Platform (BAP) for symbolic execution and Z3 SMT Solver as SMT solving software.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call