工具

Redress Go 二进制分析工具

基于 GoRE 库的命令行工具,可从 Go 编译器生成、已剥离符号的二进制文件中恢复元数据。它能报告编译器版本、构建 ID、GOROOT、main 包路径和 Go 模块信息;列出项目包、标准库包和 vendor 包;把接口、结构体及其方法输出为 Go 类型声明;并按包、文件和函数推测源码树布局,估计各函数的行号范围。通过 r2pipe 在 radare2 中运行时,它会为函数和类型添加标记,并分析 main.init 与 main.main。

目标
二进制
类别
原生分析工具
关联
基础工具
来源复核于

使用条件与局限

  • 审阅对象为默认分支 develop 上的提交 fe38d96(2024-10-12)。稳定的 master 分支领先 96 个提交,全部是自动生成的“Update Gore version”提交:一个每日工作流会在 GoRE 发布新版本时更新这项依赖,随后打标签并构建发行版。审阅时最新发行版为 v1.2.98(2026-10-20),基于 GoRE v0.14.7 构建,而 develop 的 go.mod 仍固定为 v0.11.5;两个分支的 README 完全相同。
  • 发行包只有 Linux、macOS 和 Windows 的 amd64 构建。按 go.mod,从源码构建需要 Go 1.21+,各平台都有对应的 Make 目标;r2 子命令应在 radare2 中以 #!pipe redress r2 的方式运行。
  • 输入为用 Go 编译器构建的可执行文件。README 的示例使用 Malwarebytes 最早报告的一个 macOS 挖矿恶意样本,仓库并未包含该样本,也没有提交任何测试二进制。GoRE 从 pclntab 恢复函数,从 typelink 列表解析类型,完整支持 Go 1.7 及以后版本,对 1.5 和 1.6 仅部分支持;其编译器版本识别依靠字符串搜索,GoRE 的 README 也承认并不完美。
  • Redress 采用 AGPL-3.0(LICENSE)。GoRE 大部分代码采用 BSD 许可,但其中 GOROOT 提取等功能采用 AGPL,因此不带 gore_bsd 构建标签编译的程序都须遵循 AGPL。输出重建的是符号、类型和源码布局,而非 Go 源代码;README 也提到部分包无法归类。本次审阅未运行任何程序,也未分析任何二进制。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · goretk/redress · 修订 fe38d96
  2. go.mod GitHub · goretk/redress · 修订 fe38d96
  3. Makefile GitHub · goretk/redress · 修订 fe38d96
  4. LICENSE GitHub · goretk/redress · 修订 fe38d96
  5. .github/workflows/gore.yml GitHub · goretk/redress · 修订 fe38d96
  6. go.mod GitHub · goretk/redress · 修订 198e6dc
  7. https://github.com/goretk/redress/releases/tag/v1.2.98
  8. README.md GitHub · goretk/gore · 修订 a49d396

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

原生二进制分区全部 158 项资源