Skip to content

go-strip 更新了 v3.0

字数
433 字
阅读时间
2 分钟
更新日期
7/20/2022

go-strip 更新了。

什么是go-strip

Go编译会自带一堆信息,通过这些信息基本可以还原Go的源码架构,甚至可以用作溯源。本工具可以直接从go编译好的二进制中还原代码结构或者消除这些信息。

  • 支持Go编译的 Windows、Mac、Linux程序
  • 支持AMD64,386架构
  • 支持go全版本 1.13~1.18

使用场景

go编译时会打包很多runtime的信息到编译后的程序中,这些信息包括

  • Function
  • Filename
  • Go Struct
  • Type
  • Go Compiler Version
  • Go BuildID
  • Go Root Path
  • Go ModInfo
  • Go Complie Paramter (go 1.18新加)

这些信息的暴露会很容易还原go源码结构,如果在本地编译还会暴露路径。

go-strip可以一键还原go源码的结构,能展示go编译器,go root,go mod依赖信息,go编译参数,go源码结构(每个package下的文件名,函数,函数行号和函数行总量)

image-20220720140528326

当然也能一键混淆,在go编译完的二进制中使用go-strip再次进行处理,可以有效混淆这些信息。

在IDA7.6下查看混淆后的二进制

image-20220720140838439

更新内容

  • 一键混淆支持到 go1.18,工具支持go全版本
  • 一键解析go编译后程序的源码结构,包括go build、go mod等信息

下载

https://github.com/boy-hack/go-strip/releases

安全从业人员可能不会信任任何程序,唯一能让人稍微信任的就是开源代码。

go-strip v3的源码公开在知识星球 https://t.zsxq.com/04YVzFaiq 可以让人帮忙下载。

撰写