Strong Optimistic Solving for Dynamic Symbolic Execution

09/08/2022
by   Darya Parygina, et al.
0

Dynamic symbolic execution (DSE) is an effective method for automated program testing and bug detection. It is increasing the code coverage by the complex branches exploration during hybrid fuzzing. DSE tools invert the branches along some execution path and help fuzzer examine previously unavailable program parts. DSE often faces over- and underconstraint problems. The first one leads to significant analysis complication while the second one causes inaccurate symbolic execution. We propose strong optimistic solving method that eliminates irrelevant path predicate constraints for target branch inversion. We eliminate such symbolic constraints that the target branch is not control dependent on. Moreover, we separately handle symbolic branches that have nested control transfer instructions that pass control beyond the parent branch scope, e.g. return, goto, break, etc. We implement the proposed method in our dynamic symbolic execution tool Sydr. We evaluate the strong optimistic strategy, the optimistic strategy that contains only the last constraint negation, and their combination. The results show that the strategies combination helps increase either the code coverage or the average number of correctly inverted branches per one minute. It is optimal to apply both strategies together in contrast with other configurations.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/08/2021

Towards Symbolic Pointers Reasoning in Dynamic Symbolic Execution

Dynamic symbolic execution is a widely used technique for automated soft...
research
11/18/2020

Sydr: Cutting Edge Dynamic Symbolic Execution

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

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

Dynamic symbolic execution (DSE) suffers from path explosion problem whe...
research
07/15/2023

HyperGo: Probability-based Directed Hybrid Fuzzing

Directed grey-box fuzzing (DGF) is a target-guided fuzzing intended for ...
research
02/04/2021

Refined Grey-Box Fuzzing with SIVO

We design and implement from scratch a new fuzzer called SIVO that refin...
research
06/26/2018

Indexing Operators to Extend the Reach of Symbolic Execution

Traditional program analysis analyses a program language, that is, all p...
research
08/08/2017

Cherry-Picking of Code Commits in Long-Running, Multi-release Software

This paper presents Tartarian, a tool that supports maintenance of softw...

Please sign up or login with your details

Forgot password? Click here to reset