Skip to content

ayazip/witch-klee

Repository files navigation

Witch-KLEE

Witch-KLEE is an error witness checker based on the symbolic executor KLEE (https://klee.github.io/).

To build the KLEE-based submodule, follow the instructions available here: https://klee.github.io/build-llvm9/ (also works wiith LLVM 10).

Witch-KLEE is integrated into the program analysis tool Symbiotic (https://github.com/ayazip/symbiotic/tree/witch-klee). To run Witch-KLEE with Symbiotic, make sure the path to the Witch-KLEE executable is in $PATH. Run Symbiotic as:

path/to/symbiotic --witness-check witness program.

Violated property and architecture must be provided as arguments, using --prp property_name for property and --64 or --32 for architecture. For additional options, run path/to/symbiotic --help.

Witch-KLEE can be also run on its own, however, it is strongly recommended to use Symbiotic. To run Witch-Klee alone, execute the bash script witch.sh:

To run witness validation: path/to/witch.sh program witness
To see the help message:   path/to/witch.sh help