Monster

Build Status Crate API Experimental Status Lines of Code MIT licensed

Monster is a symbolic execution engine for 64-bit RISC-U binaries generated by Selfie.

Usage

Binary

Once Rust is installed (see step 1-3 in "Toolchain Setup"), you can easily install the latest version of Monster with: $ cargo install monster-rs --locked $ monster --help

Library

Usage

Add this to your Cargo.toml: [dependencies] monster-rs = "0"

Toolchain setup

Linux and Unix-like OS

  1. Bootstrap rust $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  2. Install Rustfmt (formatter) and Clippy (linter) $ rustup component add rustfmt $ rustup component add clippy
  3. Add cargo to your $PATH $ echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
  4. Install tool for cross compilation and documentation generation $ cargo install cross --locked $ cargo install mdbook --locked $ cargo install mdbook-linkcheck --locked $ cargo install mdbook-graphviz --locked
  5. install Docker and LLVM with your favorite package manager
MacOS
  1. Install docker (needed by cross) with this installation guide $ brew cask install docker
  2. Make sure you have a recent version of clang/llvm (>= v9) installed: $ brew install llvm
Debian based
  1. Install docker (needed by cross) with this installation guide
  2. Make sure you have a recent version of clang/llvm (>= v9) installed: $ apt install llvm

Windows

We do not support Windows directly. But someone can use WSL2 to run/develop for Monster.

Build and Test from Source

  1. Test your toolchain setup by compiling monster: $ cargo build --locked
  2. Execute tests: $ cargo test --locked

    License

Copyright (c) 2020, the Selfie authors. All rights reserved.

Licensed under the MIT license.