5 个版本 (3 个重大变更)

0.4.1 2021 年 6 月 15 日
0.4.0 2021 年 6 月 14 日
0.3.0 2021 年 3 月 10 日
0.2.0 2021 年 2 月 23 日
0.1.0 2021 年 1 月 20 日

#303 in 科学

MIT 许可证

230KB
6K SLoC

Monster

Build Status Crate API Experimental Status Rust Version Platform Lines of Code License

Monster 是一个不完整的用于生成自 Selfie 的 64 位 RISC-U 二进制的符号执行引擎。它可以找到未知二进制中的除以零等错误。它的不完整性被用作优势,通过基于二进制代码结构的最短路径探索策略,来乐观地剪枝状态搜索空间。在后台实现了一个不完整的 SMT 求解器,这进一步提高了性能。流行的 SMT 求解器,如 Boolector 和 Z3,也被作为可选构建选项支持。

用法

二进制

一旦安装了 Rust(见“工具链设置”中的步骤 1),您就可以轻松安装 Monster 的最新版本:

$ cargo install monster-rs --locked
$ monster --help

用法

将其添加到您的 Cargo.toml 中

[dependencies]
monster-rs = "0"

工具链设置

Monster 可以在所有主要平台上构建和测试。只需确保您为以下目标之一构建:

  • x86_64-unknown-linux-gnu
  • x86_64-apple-darwin
  • x86_64-pc-windows-msvc
  1. https://rustup.rs 启动 Rust v1.52.0,并确保
  • 您使用受支持的宿主三元组之一安装它,并将其
  • 添加到您的路径中
  1. 安装 Rustfmt(格式化程序)和 Clippy(检查器)
$ rustup component add rustfmt
$ rustup component add clippy
  1. 安装文档生成工具
$ cargo install mdbook --locked
$ cargo install mdbook-linkcheck --locked
$ cargo install mdbook-graphviz --locked
  1. 使用我们喜欢的包管理器安装构建 Selfie 的工具

MacOs

$ brew install make gcc git

Linux

$ apt install make gcc git

Windows

$ choco install make -y
$ choco install mingw -y
$ choco install git -y

从源码构建和测试

可以在所有平台上执行测试,尽管 Windows 上不支持一个功能:boolector

  1. 通过编译 monster 测试您的工具链设置
$ cargo build --locked
  1. 执行测试
$ cargo test --locked

许可证

版权所有 (c) 2020,Selfie 的作者。保留所有权利。

MIT 许可证下发布。

依赖项

~10–26MB
~380K SLoC