This paper presents a framework for binary code analysis that uses only SAT-based algorithms. Within the framework, incremental SAT solving is used to perform a form of weakly relational value-set analysis in a novel way, connecting the expressiveness of the value sets to computational complexity. Another key feature of our framework is that it translates the semantics of binary code into an intermediate representation. This allows for a straightforward translation of the program semantics into Boolean logic and eases the implementation efforts, too. We show that leveraging the efficiency of contemporary SAT solvers allows us to prove interesting properties about medium-sized microcontroller programs.
@InProceedings{brauer_et_al:OASIcs.SSV.2011.32, author = {Brauer, J\"{o}rg and Hansen, Ren\'{e} Rydhof and Kowalewski, Stefan and Larsen, Kim G. and Olesen, Mads Chr.}, title = {{Adaptable Value-Set Analysis for Low-Level Code}}, booktitle = {6th International Workshop on Systems Software Verification}, pages = {32--43}, series = {Open Access Series in Informatics (OASIcs)}, ISBN = {978-3-939897-36-1}, ISSN = {2190-6807}, year = {2012}, volume = {24}, editor = {Brauer, J\"{o}rg and Roveri, Marco and Tews, Hendrik}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.SSV.2011.32}, URN = {urn:nbn:de:0030-drops-35884}, doi = {10.4230/OASIcs.SSV.2011.32}, annote = {Keywords: Abstract interpretation, SAT solving, embedded systems} }
Feedback for Dagstuhl Publishing