Targeted Control-flow Transformations for Mitigating Path Explosion in Dynamic Symbolic Execution

08/03/2023
by   Charitha Saumya, et al.
0

Dynamic symbolic execution (DSE) suffers from path explosion problem when the target program has many conditional branches. Classical approach for managing the path explosion problem is dynamic state merging. Dynamic state merging combines similar symbolic program states together to avoid the exponential growth of states in DSE. However, state merging still requires solver invocations at each branch point of the program even when both paths of the branch is feasible and, the best path search strategy for DSE may not create the best state merging opportunities. Some drawbacks of state merging can be mitigated by compile-time state merging i.e. branch elimination by converting control-flow into data-flow. In this paper, we propose a non-semantics preserving but failure-preserving compiler technique for removing expensive symbolic branches in a program to improve the scalability of DSE. We develop a framework for detecting spurious bugs that can be inserted by our transformation. Finally, we show that our transformation can significantly improve the performance of exhaustive DSE on variety of benchmarks and helps in achieving more coverage in a large real-world subjects within a limited time budget.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/08/2022

Strong Optimistic Solving for Dynamic Symbolic Execution

Dynamic symbolic execution (DSE) is an effective method for automated pr...
research
08/23/2023

State Merging with Quantifiers in Symbolic Execution

We address the problem of constraint encoding explosion which hinders th...
research
11/18/2020

Sydr: Cutting Edge Dynamic Symbolic Execution

The security development lifecycle (SDL) is becoming an industry standar...
research
04/03/2021

Input Validation with Symbolic Execution

Symbolic execution has always been plagued by the inability to handle pr...
research
07/23/2019

Enhancing Dynamic Symbolic Execution by Automatically Learning Search Heuristics

We present a technique to automatically generate search heuristics for d...
research
11/10/2021

Symbolic Security Predicates: Hunt Program Weaknesses

Dynamic symbolic execution (DSE) is a powerful method for path explorati...
research
06/26/2018

Indexing Operators to Extend the Reach of Symbolic Execution

Traditional program analysis analyses a program language, that is, all p...

Please sign up or login with your details

Forgot password? Click here to reset