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 科学
230KB
6K SLoC
Monster
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
- 从 https://rustup.rs 启动 Rust v1.52.0,并确保
- 您使用受支持的宿主三元组之一安装它,并将其
- 添加到您的路径中
- 安装 Rustfmt(格式化程序)和 Clippy(检查器)
$ rustup component add rustfmt
$ rustup component add clippy
- 安装文档生成工具
$ cargo install mdbook --locked
$ cargo install mdbook-linkcheck --locked
$ cargo install mdbook-graphviz --locked
- 使用我们喜欢的包管理器安装构建 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
- 通过编译 monster 测试您的工具链设置
$ cargo build --locked
- 执行测试
$ cargo test --locked
许可证
版权所有 (c) 2020,Selfie 的作者。保留所有权利。
在 MIT 许可证下发布。
依赖项
~10–26MB
~380K SLoC