工具
protodump Protobuf 定义恢复工具
Go 编写的命令行工具,可从已编译的二进制或其他任意文件中恢复 Protocol Buffers 模式:它在原始字节中搜索生成代码嵌入的序列化 FileDescriptorProto 记录(借助其中的 .proto 文件名定位),并按原描述符路径将每条记录重新写成 .proto 源文件。重新生成的文件采用 proto2、proto3 或 editions 语法,包含包名、导入、常用文件选项,带保留范围的消息、嵌套枚举、oneof、map 与默认值,以及服务及其 RPC 方法,为分析者解码 Protobuf 流量提供消息和接口定义。
使用条件与局限
- 审阅时没有任何带标签的发布版;README 使用 go install 安装最新模块版本,go.mod 声明 Go 1.26.8。所审阅的 2026-09-27 main 分支提交将输出写入限制在指定目录内,并拒绝覆盖已有文件。CI 在 Linux、macOS 和 Windows 上进行测试和构建。
- 输入为使用者提供的、嵌入了完整描述符的二进制或其他文件。扫描是字节搜索而非可执行格式解析,因此缺失或未以普通序列化记录形式存储的描述符无法找到;解析失败的记录除非使用 -v,否则会被静默跳过。
- 字段、消息、枚举、oneof、服务和方法的选项尚未输出(生成器中标为 TODO),扩展定义也不会写出,因此重新生成的文件可能与原文件不同,需要分析者复核。
- 所审阅的提交中没有许可证文件或许可声明,GitHub 也未检测到许可证,因此项目未声明任何再使用条款。本次未扫描任何二进制。
关于此条目
- 类型
- 工具
- 类别
- 协议分析工具
- 关联
- 基础工具
- 目标
- 二进制 · 协议
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · arkadiyt/protodump · 修订 d398fad
- pkg/protodump/scan.go GitHub · arkadiyt/protodump · 修订 d398fad
- pkg/protodump/proto.go GitHub · arkadiyt/protodump · 修订 d398fad
- cmd/protodump/main.go GitHub · arkadiyt/protodump · 修订 d398fad
- cmd/protodump/output.go GitHub · arkadiyt/protodump · 修订 d398fad
- go.mod GitHub · arkadiyt/protodump · 修订 d398fad
- .github/workflows/build.yml GitHub · arkadiyt/protodump · 修订 d398fad
- https://github.com/arkadiyt/protodump/tree/d398fada3452b87e6f0879d9cdf3dad31bb74d6e