go build 时如何才能不携带 BuildInfo 信息?
直接二进制查看 go 编译的二进制文件,会发现带有 import 包信息,挺敏感的
dep github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
dep github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
dep google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ=
dep google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU=
dep github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
但查了下没发现去除的办法
github.com/golang/go/issues/50501 直接关了?
翻 go 编译器源码,找到关于这块信息的部分去除,diy 一个编译器就行了。
github.com/burrowers/garble garble 可以去掉但是可能有副作用
同好奇,c 语言也有同样问题
不用开源的 自己撸就完了
有个邪教方法 把三方包下载到本地自己改成随机名字 import 如何
这也算敏感信息?安全过度了吧。按这种标准大部分语言的编译打包工具全不用玩了,自己发明一种?
#4 用了 10 年 c 语言,我也好奇你说的这个,c 语言哪里有 build info ?
如果是在字符串区就直接删了呗,应该不影响功能,注意对齐就行
#7 「自主研发」的含金量
8# 符号表吧可能...
遥遥领先
SBOM 清单,在安全与合规审计,软件溯源时还是很有用的,建议留着。
要说怎么去除,我也不知道
你可以自己把库都 fork 下来改个包名 import
主要是上面的意思是不想让某部门知道是用 Go 写的
buildinfo 留着是利大于弊,藏着掖着弄的好像有什么见不得人的地方一样(公开依赖项不利于宣称自主研发吗? )。
即便把 buildinfo 去掉,只需要简单的命令 strings ./xxx 就可以看到内部的依赖软件路径。
加个壳行不?
strip --remove-section=.go.buildinfo ./bin
可以删一些 section ,但想让人看不出来是 go 写的基本没可能
直接用 upx 压缩,再剔除二进制文件的 upx 的字段,这样至少静态分析没法判断是 go 写的
我也是这个思路,是在 cmd/go/internal/load.setBuildInfo
成都电信,8.8.8.8的 443 和 853 端口一直是封锁的,晚上翻 dns.google的域名证书,发现了惊喜 一共 11 个备用名称 DNS Name=dns.go…
看到这个楼主 www.hesudu.com/t/1047948#reply5 的经历和我的很相似,作为同经历的人很有感触,前段时间我也对自己的职业生涯做了一个复盘《七年之痒!…
我稍微抱怨了一下,说对比其他家,价格太贵,结果人家很坦诚,说这两年是有点。 人家继续补充:但是放心,从今年开始,大家的价格都一样了,不用担心了。 我听了以后心里一万屁草泥马啊,…
合速度