Litcius/Paper detail

SymQEMU: Compilation-based symbolic execution for binaries

Sebastian Poeplau, Aurélien Francillon

202159 citationsDOIOpen Access PDF

Abstract

Symbolic execution is a powerful technique for software analysis and bug detection. Compilation-based symbolic execution is a recently proposed flavor that has been shown to improve the performance of symbolic execution significantly when source code is available. We demonstrate a novel technique to enable compilation-based symbolic execution of binaries (i.e., without the need for source code). Our system, SymQEMU, builds on top of QEMU, modifying the intermediate representation of the target program before translating it to the host architecture. This enables SymQEMU to compile symbolic-execution capabilities into binaries and reap the associated performance benefits while maintaining architecture independence.

Topics & Concepts

Computer scienceSymbolic executionProgramming languageParallel computingSymbolic trajectory evaluationModel checkingSoftwareParallel Computing and Optimization TechniquesSoftware Testing and Debugging TechniquesAlgorithms and Data Compression