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
问编程相关的问题,大概率大篇幅代码片段,文字描述,概念性解释很少。问概技术相关概念,或者其他日常话题,回答也及其精炼,甚至有点简陋。 术业有专攻,陪人唠嗑的大模型太多了,编…
mailper 在2009年4月26的文章里《Guido认为程序员大多数工作不需要递归》谈及递归不是编程的基础。并且在python中并没有实现尾部递归Tail Recurssi…
在上有100多本关于Linux的免费书籍,书籍涉及到多Linux编程的领域 包括 WEB开发书籍 桌面GUI开发 数据库方面的书籍 Linux安全方面 等等,还有其他众多脚…
合速度