{
  "added_at": "2026-11-03",
  "additional_evidence_urls": [
    "https://github.com/goretk/redress/blob/fe38d961b5d8bf0a0ebf58421527da64422a7922/go.mod",
    "https://github.com/goretk/redress/blob/fe38d961b5d8bf0a0ebf58421527da64422a7922/Makefile",
    "https://github.com/goretk/redress/blob/fe38d961b5d8bf0a0ebf58421527da64422a7922/LICENSE",
    "https://github.com/goretk/redress/blob/fe38d961b5d8bf0a0ebf58421527da64422a7922/.github/workflows/gore.yml",
    "https://github.com/goretk/redress/blob/198e6dc82f17ca6e9edb80b22a85af17f1a3b031/go.mod",
    "https://github.com/goretk/redress/releases/tag/v1.2.98",
    "https://github.com/goretk/gore/blob/a49d39670e6137952032277d41430bd734a06404/README.md"
  ],
  "category": "native-analysis",
  "description_en": "Command-line tool, built on the GoRE library, that recovers metadata from stripped binaries produced by the Go compiler. It reports the compiler version, build ID, GOROOT, main-package path and Go module information; lists project, standard-library and vendored packages; prints interfaces, structs and their methods as Go type declarations; and projects the source tree as packages, files and functions with estimated line ranges. Run inside radare2 through r2pipe, it adds function and type flags and analyzes main.init and main.main.",
  "description_zh": "基于 GoRE 库的命令行工具，可从 Go 编译器生成、已剥离符号的二进制文件中恢复元数据。它能报告编译器版本、构建 ID、GOROOT、main 包路径和 Go 模块信息；列出项目包、标准库包和 vendor 包；把接口、结构体及其方法输出为 Go 类型声明；并按包、文件和函数推测源码树布局，估计各函数的行号范围。通过 r2pipe 在 radare2 中运行时，它会为函数和类型添加标记，并分析 main.init 与 main.main。",
  "entry_url": "https://awesomerea.org/resources/redress/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/redress/",
  "evidence_url": "https://github.com/goretk/redress/blob/fe38d961b5d8bf0a0ebf58421527da64422a7922/README.md",
  "group": "tools",
  "id": "redress",
  "json_url": "https://awesomerea.org/resources/redress/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/redress/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/redress/index.md",
  "name": "Redress",
  "name_zh": "Redress Go 二进制分析工具",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Reviewed at commit fe38d96 (2024-10-12) on develop, the default branch. The stable master branch is 96 commits ahead, all automated \"Update Gore version\" commits: a daily workflow bumps the GoRE dependency whenever GoRE publishes a new release, then tags and builds a release. Latest release at review: v1.2.98 (2026-10-20), built against GoRE v0.14.7, while develop's go.mod still pins v0.11.5; the README is identical on both branches.",
    "Release archives are amd64-only builds for Linux, macOS and Windows. Source builds need Go 1.21+ according to go.mod, with Make targets for each platform; the r2 subcommand is meant to run from radare2 as #!pipe redress r2.",
    "Input is an executable built with the Go compiler. The README's examples use a macOS cryptominer sample first reported by Malwarebytes, which the repository does not include; it commits no test binaries. GoRE recovers functions from the pclntab and types from the typelink list, fully supporting Go 1.7 and later and only partially 1.5 and 1.6, and its compiler-version detection is a string search that the GoRE README says is not perfect.",
    "Redress is AGPL-3.0 (LICENSE). GoRE is mostly BSD-licensed, but its AGPL features such as GOROOT extraction make any build without the gore_bsd tag AGPL. Output reconstructs symbols, types and a source layout, not Go source code, and the README notes that some packages cannot be classified."
  ],
  "requirements_zh": [
    "审阅对象为默认分支 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 也提到部分包无法归类。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/goretk/redress",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
