garble:混淆Go构建
断章取义
GO111MODULE=on go get mvdan.cc/garble
通过包装Go工具链来混淆Go代码。 需要Go 1.16或更高版本。
garble build [build flags] [packages]
有关最新用法信息,请参见garble -h 。
目的
生成一个与常规版本一样工作的二进制文件,但其中包含的有关原始源代码的信息越少越好。
该工具旨在:
与cmd/go结合使用,以支持模块和构建缓存
给定相同的初始源代码,确定性和可重现性
在给定原始来源的情况下可逆,以消除混淆的恐慌痕迹
机制
该工具将对Go编译器和链接器的调用包装起来,以转换Go构建,以便:
用短的base64散列替换尽可能多的有用标识符
用较短的base64散列替换程序包路径
删除所有和信息
删除文件名和随机播放位置信息
剥离调试信息和符号表
如果给定了-literals标志,则对文字进