# goblin 二进制格式解析库

> 以零拷贝、感知字节序的方式解析二进制格式的 Rust crate，支持 ELF32/64、32/64 位 Mach-O 及多架构 fat 容器、PE32/PE32+、COFF 目标文件、Terse Executable（TE）镜像以及 Unix/BSD 归档；Object::parse 根据魔数自动识别格式。解析结果涵盖 ELF 的文件头、节区、符号、动态段条目、重定位和 note，Mach-O 的加载命令及导入导出，以及 PE 的导入导出、重定位、TLS、资源、异常与展开信息、Authenticode 证书和 .NET CLR 头。借助特性开关，它还可精简为不依赖 std 的 #[repr(C)] 结构体定义，供内核等 no_std 代码使用。

- 类型：工具
- 目标：二进制
- 类别：二进制分析库
- 关联：基础工具
- 来源复核于：2026-10-19
- 收录于：2026-10-19
- 原始资源：<https://github.com/m4b/goblin>
- 一手来源：<https://github.com/m4b/goblin/blob/24a62600a4a75c145c08ec9dd82964acf1bb833b/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/goblin/>
- 记录 JSON：<https://awesomerea.org/resources/goblin/record.json>
- 英文版：[English](https://awesomerea.org/resources/goblin/index.md)

## 使用条件与局限

- 审阅时最新标签为 0.10.6（另有同名的 v0.10.6 标签），位于 2026-05-25 的版本号更新提交；项目不发布 GitHub Release。crates.io 另列有 0.10.7，发布于 2026-05-28，但仓库中没有对应的标签或更新日志条目。所审阅的 master 提交（2026-08-30）仍声明版本 0.10.6。
- 作为 Cargo 依赖使用，需要 rustc 1.85.0+（Rust 2024 edition），依赖 plain、scroll 和可选的 log。默认特性启用全部格式及 std；elf32/elf64、mach32/mach64、pe32/pe64、te 和 archive 用于选择后端，endian_fd 按二进制自身的字节序解析，而 Mach-O、PE 和 TE 解析需要 alloc 与 endian_fd。
- 输入为用户自行提供的可执行文件、目标文件或归档的字节切片。goblin 只解析格式元数据，不包含反汇编器，代码部分需另用指令解码器处理。PE 解析选项可跳过 RVA 解析、属性证书、TLS 数据、资源或导入表；更新日志还提到 ELF 与 PE 的宽松解析模式，用于处理加壳、损坏或恶意软件样本。
- MIT 许可证。README 引用了一份 1 亿次模糊测试的报告，仓库中也有 cargo-fuzz 与 AFL 测试框架。

## 一手来源

1. <https://github.com/m4b/goblin/blob/24a62600a4a75c145c08ec9dd82964acf1bb833b/README.md>
2. <https://github.com/m4b/goblin/blob/24a62600a4a75c145c08ec9dd82964acf1bb833b/Cargo.toml>
3. <https://github.com/m4b/goblin/blob/24a62600a4a75c145c08ec9dd82964acf1bb833b/CHANGELOG.md>
4. <https://github.com/m4b/goblin/blob/24a62600a4a75c145c08ec9dd82964acf1bb833b/src/lib.rs#L286-L323>
5. <https://github.com/m4b/goblin/blob/24a62600a4a75c145c08ec9dd82964acf1bb833b/src/pe/options.rs>
6. <https://github.com/m4b/goblin/tree/24a62600a4a75c145c08ec9dd82964acf1bb833b/src/pe>
7. <https://github.com/m4b/goblin/tree/24a62600a4a75c145c08ec9dd82964acf1bb833b/src/mach>
8. <https://github.com/m4b/goblin/tree/24a62600a4a75c145c08ec9dd82964acf1bb833b/src/elf>
9. <https://github.com/m4b/goblin/blob/24a62600a4a75c145c08ec9dd82964acf1bb833b/LICENSE>
10. <https://github.com/m4b/goblin/tree/0.10.6>
11. <https://docs.rs/crate/goblin/0.10.7>

## 同分区更多条目：原生二进制

- [FLOSS 混淆字符串提取工具](https://awesomerea.org/zh/resources/flare-floss/index.md) · 工具
- [Zydis x86 反汇编与代码生成库](https://awesomerea.org/zh/resources/zydis/index.md) · 工具
- [QBDI 动态二进制插桩框架](https://awesomerea.org/zh/resources/qbdi/index.md) · 工具
- [binsider ELF 二进制分析终端界面](https://awesomerea.org/zh/resources/binsider/index.md) · 工具
- [iced x86 指令解码与汇编库](https://awesomerea.org/zh/resources/iced/index.md) · 工具
- [hrtng IDA 反编译增强插件](https://awesomerea.org/zh/resources/hrtng/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
