6 个版本 (破坏性)
0.6.0 | 2024 年 2 月 21 日 |
---|---|
0.5.0 | 2024 年 2 月 20 日 |
0.4.0 | 2024 年 2 月 20 日 |
0.3.0 | 2024 年 2 月 17 日 |
0.1.0 | 2024 年 2 月 16 日 |
#522 在 Rust 模式
81KB
330 行
闪电般 🔥 快速 🚀 的内存漏洞,100% 安全的 Rust 编写。 🦀
cve-rs 允许您以内存安全的方式将常见的内存漏洞(如缓冲区溢出和段错误)引入您的 Rust 程序。
Rust 是一种令人惊叹的语言。您可以在确保程序安全的同时编写很多有用的东西。不幸的是,安全 Rust 相当有限。例如,您不能引入可能损坏程序内存的代码。现在,有了 cve-rs,您可以在不损坏程序内存的情况下破坏程序内存。
我们非常致力于确保 cve-rs 具有内存安全性。我们知道不安全代码可能产生意外的后果,例如可能导致程序不安全或不稳定的内存不安全。
这就是为什么 cve-rs 在整个代码库中使用了 #![deny(unsafe_code)]
。在这个项目中没有一块 std::mem::transmute
的不安全代码。
* 令人遗憾的是,有一个例外:在我们的测试中,我们将我们安全
transmute
函数的结果与标准库实现进行比较。可能有些短视,标准库实现是不安全的。无论如何,这仅限于我们的测试 - 核心库没有不安全代码。
cve-rs 在安全 Rust 中实现了以下错误
- 使用后释放
- 缓冲区溢出
- 段错误
cve-rs 还包含以下安全重实现
std::mem::transmute
std::ptr::null()
/null_mut()
但对于引用
以下是一个使用segfault
子命令的示例
安装
cve-rs可以直接与Cargo一起使用。
将其用作库
cargo add cve-rs
或运行我们的示例二进制文件
cargo install cve-rs
WASM支持
cve-rs通过WASI API支持WASM。
您可以使用以下命令使用Wasmer编译和运行它
cargo build --target wasm32-wasi
wasmer run target/wasm32-wasi/debug/cve-rs.wasm
贡献者
特别感谢@Bright-Shard和@Creative0708!
我可以在生产中使用cve-rs吗?
本项目采用GLWTSPL许可。
许可
本项目采用GLWTSPL许可。
依赖项
~0–345KB