60 个版本 (35 个重大更新)
0.36.3 | 2024年8月7日 |
---|---|
0.36.2 | 2024年7月24日 |
0.36.1 | 2024年6月29日 |
0.34.0 | 2024年3月11日 |
0.1.0 | 2016年8月20日 |
#16 in 解析器实现
7,101,836 每月下载量
在 32,779 个crate中使用 (165 直接使用)
1.5MB
34K SLoC
object
该 object
crate 为跨平台操作对象文件提供统一的接口。它支持读取可重定位对象文件和可执行文件,并写入 COFF/ELF/Mach-O/XCOFF 可重定位对象文件和 ELF/PE 可执行文件。
对于读取文件,它提供了多级支持
支持的读取文件格式:ELF、Mach-O、Windows PE/COFF、Wasm、XCOFF 和 Unix 存档。
对于写入文件,它提供了
统一读取API的示例
use object::{Object, ObjectSection};
use std::error::Error;
use std::fs;
/// Reads a file and displays the name of each section.
fn main() -> Result<(), Box<dyn Error>> {
let binary_data = fs::read("path/to/binary")?;
let file = object::File::parse(&*binary_data)?;
for section in file.sections() {
println!("{}", section.name()?);
}
Ok(())
}
有关更多示例,请参阅 crates/examples
最低支持的 Rust 版本 (MSRV)
MSRV 的更改被视为破坏性更改。我们对更改 MSRV 很谨慎,但有时由于依赖关系需要更改。MSRV 是 1.65.0。
许可证
许可协议为
- Apache许可证,版本2.0(
LICENSE-APACHE
或 https://www.apache.org/licenses/LICENSE-2.0) - MIT许可证(
LICENSE-MIT
或 https://opensource.org/licenses/MIT)
由您自行选择。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,都将如上双许可,不附加任何额外条款或条件。
依赖项
~0.1–1.4MB
~26K SLoC