V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
lysShub
V2EX  ›  Go 编程语言

go build 时如何才能不携带 BuildInfo 信息?

  •  
  •   lysShub · 8 小时 35 分钟前 · 1300 次点击

    直接二进制查看 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=
    

    但查了下没发现去除的办法

    18 条回复    2025-09-17 09:59:10 +08:00
    lysShub
        1
    lysShub  
    OP
       8 小时 33 分钟前
    kk2syc
        2
    kk2syc  
       8 小时 12 分钟前
    翻 go 编译器源码,找到关于这块信息的部分去除,diy 一个编译器就行了。
    Dreax
        3
    Dreax  
       3 小时 31 分钟前
    https://github.com/burrowers/garble garble 可以去掉但是可能有副作用
    liuidetmks
        4
    liuidetmks  
       3 小时 30 分钟前 via iPhone
    同好奇,c 语言也有同样问题
    realpg
        5
    realpg  
    PRO
       2 小时 27 分钟前
    不用开源的 自己撸就完了
    rekulas
        6
    rekulas  
       2 小时 16 分钟前
    有个邪教方法 把三方包下载到本地自己改成随机名字 import 如何
    conn457567
        7
    conn457567  
       1 小时 59 分钟前 via Android
    这也算敏感信息?安全过度了吧。按这种标准大部分语言的编译打包工具全不用玩了,自己发明一种?
    yolee599
        8
    yolee599  
       1 小时 51 分钟前 via Android
    @liuidetmks #4 用了 10 年 c 语言,我也好奇你说的这个,c 语言哪里有 build info ?
    seers
        9
    seers  
       1 小时 35 分钟前 via Android
    如果是在字符串区就直接删了呗,应该不影响功能,注意对齐就行
    CHTuring
        10
    CHTuring  
       1 小时 33 分钟前   ❤️ 1
    @conn457567 #7 「自主研发」的含金量
    xtreme1
        11
    xtreme1  
       1 小时 32 分钟前
    @yolee599 8# 符号表吧可能...
    bruce0
        12
    bruce0  
       1 小时 21 分钟前
    @CHTuring 遥遥领先
    bv
        13
    bv  
       48 分钟前   ❤️ 1
    SBOM 清单,在安全与合规审计,软件溯源时还是很有用的,建议留着。
    要说怎么去除,我也不知道
    NessajCN
        14
    NessajCN  
       43 分钟前
    你可以自己把库都 fork 下来改个包名 import
    owen800q
        15
    owen800q  
       41 分钟前 via iPhone
    @bv 主要是上面的意思是不想让某部门知道是用 Go 写的
    bv
        16
    bv  
       29 分钟前
    @owen800q buildinfo 留着是利大于弊,藏着掖着弄的好像有什么见不得人的地方一样(公开依赖项不利于宣称自主研发吗? )。

    即便把 buildinfo 去掉,只需要简单的命令 strings ./xxx 就可以看到内部的依赖软件路径。
    skiy
        17
    skiy  
       18 分钟前 via iPhone
    加个壳行不?
    qieqie
        18
    qieqie  
       8 分钟前
    strip --remove-section=.go.buildinfo ./bin
    可以删一些 section ,但想让人看不出来是 go 写的基本没可能
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5751 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:07 · PVG 10:07 · LAX 19:07 · JFK 22:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.