#shared-memory #fuzzing #security-testing #security

no-std libafl_bolts

创建模糊器及更多低级功能的低级螺栓

7个版本

0.13.2 2024年7月31日
0.13.1 2024年6月30日
0.12.0 2024年4月12日
0.11.2 2023年12月21日
0.11.1 2023年8月31日

#653 in 测试

Download history 193/week @ 2024-04-28 170/week @ 2024-05-05 102/week @ 2024-05-12 94/week @ 2024-05-19 146/week @ 2024-05-26 138/week @ 2024-06-02 260/week @ 2024-06-09 215/week @ 2024-06-16 145/week @ 2024-06-23 326/week @ 2024-06-30 435/week @ 2024-07-07 417/week @ 2024-07-14 106/week @ 2024-07-21 304/week @ 2024-07-28 213/week @ 2024-08-04 56/week @ 2024-08-11

每月下载701次
用于 8 crates

MIT/Apache

560KB
12K SLoC

LibAFL_bolts: OS和Fuzzer开发者库集合。

LibAFL logo

libafl_bolts crate公开了LibAFL的许多底层功能,供与模糊测试无关的项目或与LibAFL完全不同的模糊器使用。螺栓中的跨平台功能包括(但不限于)

  • SerdeAnyMap:一个通过类型存储和检索元素的映射,可序列化和反序列化
  • ShMem:一个跨平台(Windows、Linux、Android、MacOS)的共享内存实现
  • LLMP:通过SharedMap实现的快速、无锁的IPC机制
  • Core_affinity:维护版本的core_affinity,可用于获取核心信息和将进程绑定到核心
  • Rands:用于模糊测试的快速随机数生成器(如RomuRand
  • MiniBSOD:获取并打印有关当前进程状态的信息,包括重要的寄存器。
  • Tuples:类似Haskel的编译时元组列表
  • Os:特定于操作系统的事物,如信号处理、Windows异常处理、管道和fork的帮助器

LibAFL_bolts由以下人员编写和维护

贡献

对于bug,请随意打开问题或直接联系我们。感谢您的支持。<3

虽然我们很乐意帮助您完成PR,但请尽量

  • 使用稳定 rust编译所有crate(将最终的非稳定代码隐藏在cfg
  • 在推送代码之前,运行cargo nightly fmt
  • 检查cargo clippy --all./clippy.sh的输出
  • 运行cargo build --no-default-features以检查no_std兼容性(并可能添加#[cfg(feature = "std")]以隐藏代码的部分)

列表中的某些部分可能很难,如果您无法自行修复,请不要害怕打开PR,我们可以帮助。

许可

根据您的选择,在Apache License, Version 2.0MIT license下许可。
除非您明确表示,否则任何有意提交以包含在此crate中的贡献,如Apache-2.0许可中定义,应按上述方式双许可,不附加任何额外条款或条件。
在更严格的许可下,如GPL或AGPL,可以使用每个crate中存在的相应功能启用依赖项,例如libafl crate的'agpl'功能。

依赖项

~0.5–43MB
~676K SLoC