#接口 #绑定 #消毒剂 # #地址消毒剂

消毒剂

消毒剂接口的接口和 FFI 绑定

8 个版本

0.0.8 2024 年 7 月 17 日
0.0.7 2024 年 7 月 17 日
0.0.2 2024 年 2 月 28 日

#4 in #消毒剂

Download history 641/week @ 2024-07-14 5/week @ 2024-07-21 145/week @ 2024-07-28

每月 791 次下载

MIT/Apache

76KB
1K SLoC

消毒剂

Build Status

消毒剂接口的接口和 FFI 绑定。

安装

要安装 消毒剂

  1. 在命令提示符或终端中,以您的包根目录为当前工作目录,运行以下命令

    cargo add sanitizers
    

或者

  1. 消毒剂 包添加到您的包根目录的 Cargo.toml 文件中

    [dependencies]
    sanitizers = "0.0.8"
    
  2. 在命令提示符或终端中,以您的包根目录为当前工作目录,运行以下命令

    cargo fetch
    

使用

要使用 消毒剂

  1. 消毒剂 包导入消毒剂模块或函数。例如。

    use sanitizers::asan::*;
    
  2. 使用提供的接口进行消毒。例如。

    ...
    let mut data = vec![0u8; 100];
    let data_ptr = data.as_mut_ptr() as *const c_void;
    
    // Poison the memory region
    unsafe {
           __asan_poison_memory_region(data_ptr, data.len());
    }
    
    // Check if the memory region is poisoned
    let is_poisoned = unsafe { __asan_address_is_poisoned(data_ptr) };
    assert_eq!(is_poisoned, 1);
    ...
    
  3. 启用消毒剂构建您的包。建议在启用消毒剂时,通过使用 Cargo build-std 功能(即 -Zbuild-std)重新构建标准库。例如。

    RUSTFLAGS="-Clinker=clang -Clink-arg=-fuse-ld=lld -Zsanitizer=address" \
      cargo build -Zbuild-std -Zbuild-std-features \
      --target x86_64-unknown-linux-gnu
    

贡献

请参阅 CONTRIBUTING.md

许可证

根据 Apache 许可证第 2.0 版或 MIT 许可证授权。有关许可证文本和版权信息,请参阅 LICENSE-APACHELICENSE-MIT

无运行时依赖