Back to Search Start Over

A Solver for a Theory of String and Bit-vectors.

Authors :
Subramanian, Sanu
Berzish, Murphy
Ganesh, Vijay
Tripp, Omer
Source :
ICSE: International Conference on Software Engineering; 2017, p124-126, 3p
Publication Year :
2017

Abstract

We present the Z3strBV solver for a many-sorted first-order quantifier-free theory Tw,bv of string equations, string length represented as bit-vectors, and bit-vector arithmetic aimed at formal verification, automated testing, and security analysis of C/C++ applications. Our key motivation for building such a solver is the observation that existing string solvers are not efficient at modeling the combined theory over strings and bit-vectors. We demonstrate experimentally that Z3strBV is significantly more efficient than a reduction of string/bit-vector constraints to strings/natural numbers followed by a solver for strings/natural numbers or modeling strings as bit-vectors. We also propose two optimizations. First, we explore the concept of library-aware SMT solving, which fixes summaries in the SMT solver for string library functions such as strlen in C/C++. Z3strBV is able to consume these functions directly instead of re-analyzing the functions from scratch each time. Second, we experiment with a binary search heuristic that accelerates convergence on a consistent assignment of string lengths. We also show that Z3strBV is able to detect nontrivial overflows in realworld system-level code, as confirmed against seven security vulnerabilities from the CVE and Mozilla databases. [ABSTRACT FROM AUTHOR]

Details

Language :
English
Database :
Complementary Index
Journal :
ICSE: International Conference on Software Engineering
Publication Type :
Conference
Accession number :
125502398
Full Text :
https://doi.org/10.1109/ICSE-C.2017.73