Chopped symbolic execution is a novel form of symbolic execution which allows users to specify uninteresting parts of the code which can be excluded duringanalysis.
A rigorous empirical study of the impact of miscompilation bugs in a mature compiler, comparing bugs found using a fuzzer to bugs found while compiling realcode.
We study the effect of relaxing too conservative conditions for generating UB-free compiler test-cases of Csmith’s code-generation and code-execution timesolutions.
We propose a coverage-directed, mutation-based approach for fuzzing C compilers and code analysers, inspired by the success of this type of greybox fuzzing in other applicationdomains.
An approach based on coverage-guided fuzzing for determining the satisfiability of SMT constraints, particularly those that involve floating-pointarithmetic.
An extension to KLEE that provides an integer solver based on Z3. Solver queries that do not contain bitvector instructions are forwarded to an integer solver instead of a bitvectorsolver.
An extension to the KLEE symbolic execution engine that supports
reasoning about floating-point arithmetic and a benchmark set used to evaluate thetool.
A counterexample-guided inductive synthesis approach for summarizing
simple string loops written in C with equivalent sequences of standard library functions and primitive pointeroperations.
An approach that combines Dynamic Software Updating (DSU) with Multi-Version Execution (MVE) in order to improve the reliability of software updates and avoid live update delays inservices.
A memoization extension for KLEE.
With MoKlee, solver results can be re-used between executions and divergence detection ensures that re-executed paths arevalid.
A study of correctness of PDF documents and PDF document readers, based on
clustering errors emitted by the PDF readers and visual inconsistenciesdetection.
A way to automatically create product programs for multiple versions of a program, which lets patch specifications be written and checked that describe the intended change, ifany.
A variation on standard symbolic execution, where
expensive branch feasibility checks are delayed until they are necessary for
further exploration of theprogram.
A project that aims to confirm true positives from static analysers by following their error traces with KLEE. Surprisingly, the traces did not add many benefits when combined with targetedDSE.
SaBRe is a modular selective binary rewriter. It is able to rewrite system
calls, vDSO and named functions. We currently support two architectures: x86_64
andRISC-V.
A symbolic execution-based technique for patch testing. The old and the new
version are run simultaneously in order to discover the introduced behaviouraldivergences.
SnapFuzz is an efficient fuzzing framework for network applications which significantly improves fuzzing throughput and eliminates the need for fragile timing delays and clean-upscripts.
An NVX framework that combines selective binary rewriting with a novel
event-streaming architecture to significantly reduce performance
overhead and scale well with the number ofversions.
An empirical study and the underlying infrastructure for analyzing code,
test and coverage evolution in real software using both static and
dynamicmetrics.
A novel document recovery technique based on symbolic execution
that makes it possible to fix broken documents without any prior
knowledge of the fileformat.
A set of semantic-preserving transformations that take advantage of
contextual information collected during symbolic execution to speedup
arrayoperations.
An extension to KLEE that uses the metaSMT framework to add support
for multiple SMT solvers (Boolector, STP and Z3), and its evaluation
on 12 Coreutilsapplications.
A novel multi-version execution technique for surviving buggy software
updates, whose key insight is to run the new software version in
parallel with the oldone.
A symbolic execution engine for the Boogie intermediate verification
language which provides modular components that can be reused in other
Boogieprojects.
A technique for testing symbolic execution engines based on program generation
and differential testing of compilers, together with a case study on
CREST, KLEE andFuzzBall.
A lightweight symbolic execution technique for improving existing test
suites by thoroughly checking for errors all sensitive operations
executed by the testsuite.