11 个版本
0.8.0 | 2024年7月30日 |
---|---|
0.7.2 | 2024年5月8日 |
0.7.0 | 2023年4月27日 |
0.6.3-alpha.1 | 2022年10月24日 |
0.5.0-alpha.4 | 2022年9月18日 |
535 在 编码
每月38,442次下载
在 3 个crate 中使用
32KB
389 行
使用cargo auditable
从二进制中提取依赖树的高级crate。
可选地将它们反序列化为JSON字符串或Rust数据结构。
特性
- 从头开始设计用于对恶意输入具有弹性的二进制解析。
- 100%内存安全的Rust,包括所有依赖项。(在
serde_json
及其依赖项中存在一些unsafe
,但仅在序列化中使用,此处未使用)。 - 跨平台,可移植,易于交叉编译。在具有
std
的任何Rust目标上运行。 - 解析来自任何支持平台的二进制文件,而不仅仅是它运行的平台。
- 支持设置输入和输出的尺寸限制,以防止OOMs和zip bombs。
用法
// Uses the default limits: 1GiB input file size, 8MiB audit data size
let info = audit_info_from_file(&PathBuf::from("path/to/file"), Default::default())?;
还提供了从Read
实例或从&[u8]
加载数据的函数,请参阅文档。
替代方案
rust-audit-info
是此crate的命令行界面。
如果您需要比此crate提供的更低级别的接口,请使用auditable-extract
和auditable-serde
crate。
依赖项
~0.3–0.8MB
~17K SLoC