symbolic execution
Recently Published Documents


TOTAL DOCUMENTS

805
(FIVE YEARS 217)

H-INDEX

41
(FIVE YEARS 4)

2022 ◽  
Vol 6 (POPL) ◽  
pp. 1-31
Author(s):  
Taolue Chen ◽  
Alejandro Flores-Lamas ◽  
Matthew Hague ◽  
Zhilei Han ◽  
Denghang Hu ◽  
...  

Regular expressions are a classical concept in formal language theory. Regular expressions in programming languages (RegEx) such as JavaScript, feature non-standard semantics of operators (e.g. greedy/lazy Kleene star), as well as additional features such as capturing groups and references. While symbolic execution of programs containing RegExes appeals to string solvers natively supporting important features of RegEx, such a string solver is hitherto missing. In this paper, we propose the first string theory and string solver that natively provides such support. The key idea of our string solver is to introduce a new automata model, called prioritized streaming string transducers (PSST), to formalize the semantics of RegEx-dependent string functions. PSSTs combine priorities, which have previously been introduced in prioritized finite-state automata to capture greedy/lazy semantics, with string variables as in streaming string transducers to model capturing groups. We validate the consistency of the formal semantics with the actual JavaScript semantics by extensive experiments. Furthermore, to solve the string constraints, we show that PSSTs enjoy nice closure and algorithmic properties, in particular, the regularity-preserving property (i.e., pre-images of regular constraints under PSSTs are regular), and introduce a sound sequent calculus that exploits these properties and performs propagation of regular constraints by means of taking post-images or pre-images. Although the satisfiability of the string constraint language is generally undecidable, we show that our approach is complete for the so-called straight-line fragment. We evaluate the performance of our string solver on over 195000 string constraints generated from an open-source RegEx library. The experimental results show the efficacy of our approach, drastically improving the existing methods (via symbolic execution) in both precision and efficiency.


2021 ◽  
Author(s):  
Lannan Luo ◽  
Qiang Zeng ◽  
Bokai Yang ◽  
Fei Zuo ◽  
Junzhe Wang

2021 ◽  
Author(s):  
Jingxuan He ◽  
Gishor Sivanrupan ◽  
Petar Tsankov ◽  
Martin Vechev
Keyword(s):  

2021 ◽  
Author(s):  
◽  
Glenn Colman

<p>This thesis describes a symbolic execution system, PAN, that is able to symbolically execute loops. PAN achieves this by generalizing the effect of a few loop iterations to predict the effect of an unknown number of iterations. PAN operates on relatively unstructured loops that include 'go to' type constructs, allowing multiple exits from a loop. PAN uses a two stage generalization approach using techniques developed in Artificial Intelligence systems. The first stage uses models of expected loop effects and requires only limited search to generalize the effect of simple loops The second stage uses a less constrained approach that can generalize the effects of more complex loops by using extensive search. Fundamental to PAN's generalization method is the sequence. These are identified using models and used in both stages of the generalization process.</p>


2021 ◽  
Author(s):  
◽  
Glenn Colman

<p>This thesis describes a symbolic execution system, PAN, that is able to symbolically execute loops. PAN achieves this by generalizing the effect of a few loop iterations to predict the effect of an unknown number of iterations. PAN operates on relatively unstructured loops that include 'go to' type constructs, allowing multiple exits from a loop. PAN uses a two stage generalization approach using techniques developed in Artificial Intelligence systems. The first stage uses models of expected loop effects and requires only limited search to generalize the effect of simple loops The second stage uses a less constrained approach that can generalize the effects of more complex loops by using extensive search. Fundamental to PAN's generalization method is the sequence. These are identified using models and used in both stages of the generalization process.</p>


2021 ◽  
Author(s):  
◽  
Glenn Colman

<p>This thesis describes a symbolic execution system, PAN, that is able to symbolically execute loops. PAN achieves this by generalizing the effect of a few loop iterations to predict the effect of an unknown number of iterations. PAN operates on relatively unstructured loops that include 'go to' type constructs, allowing multiple exits from a loop. PAN uses a two stage generalization approach using techniques developed in Artificial Intelligence systems. The first stage uses models of expected loop effects and requires only limited search to generalize the effect of simple loops The second stage uses a less constrained approach that can generalize the effects of more complex loops by using extensive search. Fundamental to PAN's generalization method is the sequence. These are identified using models and used in both stages of the generalization process.</p>


2021 ◽  
Author(s):  
◽  
Glenn Colman

<p>This thesis describes a symbolic execution system, PAN, that is able to symbolically execute loops. PAN achieves this by generalizing the effect of a few loop iterations to predict the effect of an unknown number of iterations. PAN operates on relatively unstructured loops that include 'go to' type constructs, allowing multiple exits from a loop. PAN uses a two stage generalization approach using techniques developed in Artificial Intelligence systems. The first stage uses models of expected loop effects and requires only limited search to generalize the effect of simple loops The second stage uses a less constrained approach that can generalize the effects of more complex loops by using extensive search. Fundamental to PAN's generalization method is the sequence. These are identified using models and used in both stages of the generalization process.</p>


2021 ◽  
Vol 5 (OOPSLA) ◽  
pp. 1-30
Author(s):  
Yannis Smaragdakis ◽  
Neville Grech ◽  
Sifis Lagouvardos ◽  
Konstantinos Triantafyllou ◽  
Ilias Tsatiris

We present a static analysis approach that combines concrete values and symbolic expressions. This symbolic value-flow (“symvalic”) analysis models program behavior with high precision, e.g., full path sensitivity. To achieve deep modeling of program semantics, the analysis relies on a symbiotic relationship between a traditional static analysis fixpoint computation and a symbolic solver: the solver does not merely receive a complex “path condition” to solve, but is instead invoked repeatedly (often tens or hundreds of thousands of times), in close cooperation with the flow computation of the analysis. The result of the symvalic analysis architecture is a static modeling of program behavior that is much more complete than symbolic execution, much more precise than conventional static analysis, and domain-agnostic: no special-purpose definition of anti-patterns is necessary in order to compute violations of safety conditions with high precision. We apply the analysis to the domain of Ethereum smart contracts. This domain represents a fundamental challenge for program analysis approaches: despite numerous publications, research work has not been effective at uncovering vulnerabilities of high real-world value. In systematic comparison of symvalic analysis with past tools, we find significantly increased completeness (shown as 83-96% statement coverage and more true error reports) combined with much higher precision, as measured by rate of true positive reports. In terms of real-world impact, since the beginning of 2021, the analysis has resulted in the discovery and disclosure of several critical vulnerabilities, over funds in the many millions of dollars. Six separate bug bounties totaling over $350K have been awarded for these disclosures.


2021 ◽  
Author(s):  
Nicola Ruaro ◽  
Kyle Zeng ◽  
Lukas Dresel ◽  
Mario Polino ◽  
Tiffany Bao ◽  
...  

Sign in / Sign up

Export Citation Format

Share Document