Skip to content

Code Structure

The Revizor codebase is organized into the following main directories:

rvzr/                         Main source code directory containing core fuzzing logic
  ├── *.py                    Core modules that implement main fuzzing components
  ├── tc_components/          Test case representation objects (code and data)
  ├── model_unicorn/          Unicorn-based leakage model
  ├── model_dynamorio/        DynamoRIO-based leakage model
  ├── executor_km/            Kernel module that implements the hardware executor
  ├── postprocessing/         Minimization utilities for contract counterexamples
  └── arch/                   Architecture-specific implementations (x86/ and arm64/)
tests/                        Unit and integration tests
docs/                         Documentation files

The main entry point is rvzr/cli.py, which parses command-line arguments and initializes the Fuzzer object.