# protodump Protobuf 定义恢复工具

> Go 编写的命令行工具，可从已编译的二进制或其他任意文件中恢复 Protocol Buffers 模式：它在原始字节中搜索生成代码嵌入的序列化 FileDescriptorProto 记录（借助其中的 .proto 文件名定位），并按原描述符路径将每条记录重新写成 .proto 源文件。重新生成的文件采用 proto2、proto3 或 editions 语法，包含包名、导入、常用文件选项，带保留范围的消息、嵌套枚举、oneof、map 与默认值，以及服务及其 RPC 方法，为分析者解码 Protobuf 流量提供消息和接口定义。

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

## 使用条件与局限

- 审阅时没有任何带标签的发布版；README 使用 go install 安装最新模块版本，go.mod 声明 Go 1.26.8。所审阅的 2026-09-27 main 分支提交将输出写入限制在指定目录内，并拒绝覆盖已有文件。CI 在 Linux、macOS 和 Windows 上进行测试和构建。
- 输入为使用者提供的、嵌入了完整描述符的二进制或其他文件。扫描是字节搜索而非可执行格式解析，因此缺失或未以普通序列化记录形式存储的描述符无法找到；解析失败的记录除非使用 -v，否则会被静默跳过。
- 字段、消息、枚举、oneof、服务和方法的选项尚未输出（生成器中标为 TODO），扩展定义也不会写出，因此重新生成的文件可能与原文件不同，需要分析者复核。
- 所审阅的提交中没有许可证文件或许可声明，GitHub 也未检测到许可证，因此项目未声明任何再使用条款。

## 一手来源

1. <https://github.com/arkadiyt/protodump/blob/d398fada3452b87e6f0879d9cdf3dad31bb74d6e/README.md>
2. <https://github.com/arkadiyt/protodump/blob/d398fada3452b87e6f0879d9cdf3dad31bb74d6e/pkg/protodump/scan.go>
3. <https://github.com/arkadiyt/protodump/blob/d398fada3452b87e6f0879d9cdf3dad31bb74d6e/pkg/protodump/proto.go>
4. <https://github.com/arkadiyt/protodump/blob/d398fada3452b87e6f0879d9cdf3dad31bb74d6e/cmd/protodump/main.go>
5. <https://github.com/arkadiyt/protodump/blob/d398fada3452b87e6f0879d9cdf3dad31bb74d6e/cmd/protodump/output.go>
6. <https://github.com/arkadiyt/protodump/blob/d398fada3452b87e6f0879d9cdf3dad31bb74d6e/go.mod>
7. <https://github.com/arkadiyt/protodump/blob/d398fada3452b87e6f0879d9cdf3dad31bb74d6e/.github/workflows/build.yml>
8. <https://github.com/arkadiyt/protodump/tree/d398fada3452b87e6f0879d9cdf3dad31bb74d6e>

## 同分区更多条目：协议

- [CAN Commander CAN 总线逆向工具](https://awesomerea.org/zh/resources/can-commander/index.md) · 工具
- [CAN 负载自动逆向分析流水线](https://awesomerea.org/zh/resources/can-reverse-engineering/index.md) · 工具
- [Deluder 应用流量拦截工具](https://awesomerea.org/zh/resources/deluder/index.md) · 工具
- [PiCCANTE 树莓派 Pico 车辆 CAN 总线工具](https://awesomerea.org/zh/resources/piccante/index.md) · 工具
- [VanBus PSA VAN 总线收发库](https://awesomerea.org/zh/resources/vanbus/index.md) · 工具
- [Apple Continuity 逆向工程工具包](https://awesomerea.org/zh/resources/apple-continuity-tools/index.md) · 工具

## 关于此条目

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