Testing framework for fuzzing and symbolic execution of C/C++ code
Top 43.4% on sourcepulse
DeepState provides a unified interface for C/C++ developers to leverage multiple fuzzing and symbolic execution engines. It allows users to write a single test harness with a Google Test-like API and execute it across various backends (e.g., AFL++, Manticore, angr, libFuzzer) without learning each engine's specifics, thereby simplifying and enhancing software testing and vulnerability discovery.
How It Works
DeepState acts as an abstraction layer over diverse fuzzing and symbolic execution tools. It enables parameterized unit testing where test data is generated by these backends. Its core advantage lies in its "write once, run anywhere" approach for test harnesses, allowing seamless switching between engines for benchmarking or bug finding. Novel features like "pumping" for selecting concrete values and automatic decomposition of integer comparisons aim to improve fuzzing effectiveness.
Quick Start & Requirements
docker pull agroce/deepstate_examples_aflpp
then docker run -it agroce/deepstate_examples_aflpp
. Inside the container, navigate to an example directory (e.g., cd ~/examples/fuzz_tcas
) and run deepstate-afl ./TCAS_AFL -o fuzz_afl --fuzzer_out --timeout 120
.Highlighted Details
Maintenance & Community
Licensing & Compatibility
Limitations & Caveats
macOS symbolic execution requires painful cross-compilation. ARM64 architecture, including Apple Silicon, is not supported due to the absence of multilib compiler support.
6 months ago
1 week