6 个版本
0.2.1 | 2021 年 7 月 3 日 |
---|---|
0.2.0 | 2021 年 7 月 3 日 |
0.1.1 | 2020 年 9 月 7 日 |
0.0.1 | 2020 年 8 月 11 日 |
#710 在 解析器实现 中排名
35,358 每月下载量
用于 6 个 软件包(3 个直接使用)
94KB
2.5K SLoC
binfarce
针对 ELF/PE/Mach-o/ar 的极简解析器。
此软件包主要用于在 cargo-bloat
和 auditable-extract
软件包之间共享代码。它仅实现了这些工具正常运行所需的最小功能。如果您正在寻找功能齐全的解析器,请参阅 goblin
。
目标
- 100% 安全的代码,包括所有依赖项。
- 简单且易于审计的代码。没有使用复杂的技巧,例如 proc 宏。
非目标
- 最高的性能。解析这些内容本身已经很便宜了。
- 全面支持格式。
功能状态
头文件解析 和 段提取 都被两个工具使用。它们是无分配的,并对不受信任的输入进行了加固。
#[forbid(unsafe_code)]
确保没有代码执行漏洞。没有堆分配确保它不会耗尽 RAM。通过 opt-in Clippy 检查和模糊测试使用静态分析来确保没有恐慌。
符号提取 仅由 cargo-bloat
使用。它在堆上分配了无界的内存,并且可能因不受信任的输入而恐慌。
只要它们遵守上述目标并保持现有工具正常运行,欢迎提交带有您自己工具所需功能的功能性 PR。然而,您应考虑使用功能齐全的 goblin
软件包。
该项目曾短暂地被称为 "kuduk"。