d0cd / vectre-evaluation

Evaluation source code for the Vectre++ tool.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vectre-evaluation

Evaluation source code for the Vectre++ tool.

Project Structure

  • program-source/ Contains source code for vulnerable/safe programs.

  • generated-binaries/ Contains RISCV binaries corresponding to those in program-source. Automatically generated.

  • generated-program-defns/ Contains program definitions compatible with Vectre, corresponding to those in generated-binaries. Automatically generated.

  • generated-uclid/ Contains UCLID5 verification tasks corresponding to those in generated-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.

Usage

  1. Use scripts to build and run complete verification pipelines for benchmarks in program-source.
  2. 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.

Notes

  • 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.

About

Evaluation source code for the Vectre++ tool.

License:MIT License


Languages

Language:Ruby 75.1%Language:Python 14.7%Language:C 8.9%Language:Shell 1.3%