工具
GolangAnalyzerExtension Ghidra Go 分析扩展
Ghidra 扩展,其 Golang Analyzer 读取 go1.6 至 go1.27 所编译 Go 二进制中的运行时头部和模块数据,用以识别 Go 版本、重命名函数、修正参数、以注释标出源文件与行号,把 Go 类型加入数据类型管理器,并标注 Go 字符串。插件窗口列出恢复出的函数、类型、源文件和字符串,并可链接到 Go 源码;另行安装 ghidra-wasm-plugin 等 Wasm 加载器后,也能处理 WebAssembly 构建。随附的脚本还会为解码 gobfuscate 式混淆字符串的函数重命名,并以注释写出解码后的文本。
- 目标
- 二进制
- 类别
- 原生分析工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅时最新版本为 1.4.0,于 2026-07-21 由所审阅的 master 提交发布,发行说明称支持 go1.6 至 go1.27。它为 Ghidra 12.0 至 12.0.4 以及 12.1、12.1.2、12.1.3 和 12.1.4 提供预构建 zip,后两个构建于 2026-10-14;通过 File > Install Extensions 安装与 Ghidra 版本对应的 zip,再重启 Ghidra。从源码构建使用 Gradle,并将 GHIDRA_INSTALL_DIR 设为某个 Ghidra 安装目录。
- 分析对象是使用者自行提供的 Go 可执行文件,该分析器默认启用。源码包含 x86、ARM、PowerPC 和 RISC-V 的函数处理逻辑;WebAssembly 需另装 Wasm 加载器。函数反汇编默认关闭,可选的 PcHeader 地址和 Go 版本设置会覆盖自动检测结果。源码中虽有基于模式匹配和 BSim 的函数名推测,但其选项未注册,始终处于关闭状态。
- 仓库提交了生成的函数名推测数据:测试资源中一份 4.3 MB 的调用函数名列表,以及 scripts 下一个 53 KB 的 H2 BSim 数据库;配套脚本用所列的各个 Go 工具链编译一个小型示例 Go 程序,再以无界面方式运行 Ghidra 生成这些数据。在此提交中,src/main/resources 下的副本为空,仓库也未提交任何目标二进制。JUnit 测试覆盖版本、头部、字符串和名称数据的解析;仓库没有 CI 工作流,本次审阅未构建、安装或运行任何程序。
- MIT 许可证位于 GolangAnalyzerExtension/LICENSE(2021 年,mooncat-greenpy),因不在仓库根目录,GitHub 未识别出许可证。输出是对 Ghidra 程序的标注,仍需分析人员核对,不会生成 Go 源码。所审来源未确立 REA 或 AI 的使用。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · mooncat-greenpy/Ghidra_GolangAnalyzerExtension · 修订 c0d1540
- https://github.com/mooncat-greenpy/Ghidra_GolangAnalyzerExtension/releases/tag/1.4.0
- GolangAnalyzerExtension/LICENSE GitHub · mooncat-greenpy/Ghidra_GolangAnalyzerExtension · 修订 c0d1540
- GolangAnalyzerExtension/build.gradle GitHub · mooncat-greenpy/Ghidra_GolangAnalyzerExtension · 修订 c0d1540
- GolangAnalyzerExtension/src/main/java/golanganalyzerextension/AnalyzerOption.java GitHub · mooncat-greenpy/Ghidra_GolangAnalyzerExtension · 修订 c0d1540
- GolangAnalyzerExtension/src/main/java/golanganalyzerextension/GolangAnalyzerExtensionAnalyzer.java GitHub · mooncat-greenpy/Ghidra_GolangAnalyzerExtension · 修订 c0d1540
- GolangAnalyzerExtension/src/main/java/golanganalyzerextension/function/GolangFunction.java GitHub · mooncat-greenpy/Ghidra_GolangAnalyzerExtension · 修订 c0d1540
- GolangAnalyzerExtension/ghidra_scripts/degobfuscate.py GitHub · mooncat-greenpy/Ghidra_GolangAnalyzerExtension · 修订 c0d1540
- scripts/extract.sh GitHub · mooncat-greenpy/Ghidra_GolangAnalyzerExtension · 修订 c0d1540
- scripts/build/build.sh GitHub · mooncat-greenpy/Ghidra_GolangAnalyzerExtension · 修订 c0d1540