Evaluation source code for the Vectre++ tool.
-
program-source/
Contains source code for vulnerable/safe programs. -
generated-binaries/
Contains RISCV binaries corresponding to those inprogram-source
. Automatically generated. -
generated-program-defns/
Contains program definitions compatible with Vectre, corresponding to those ingenerated-binaries
. Automatically generated. -
generated-uclid/
Contains UCLID5 verification tasks corresponding to those ingenerated-program-defns
. Automatically generated. -
edited-program-defns/
Contains customized program definitions for specific verification tasks. Manually edited. -
edited-uclid/
Contains customized UCLID5 code for specific verification tasks. Automatically generated or manually edited.
- Use scripts to build and run complete verification pipelines for benchmarks in
program-source
. - Customize desired verification tasks by modifying program definitions or generated UCLID5 code.
- Do not manually edit stuff in the
generated-*
subdirectories. These will likely be overwritten. - If you would like to manually experiment, maintain your code in the
edited-*
subdirectories.
- Vectre, by design, is ISA and platform agnostic. Rather, a user can specify these via the appropriate platform definitions. In this work we target RISCV architectures.
- The scripts use VeriV (riscverifier) to generate program definitions. One can add a backend to the disassembler of their choice to generate appropriate program definitions for their desired ISA.