首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
安全工具
发新帖
1
13
[原创] GStrip: Strip for golang
发表于: 2026-6-29 07:34
1675
[原创] GStrip: Strip for golang
the_hs
1
2026-6-29 07:34
1675
写Go的同学都知道,`-ldflags "-s -w" -trimpath`是糊弄鬼;往ida里面一拖,包和函数看的清清楚楚明明白白。  注意,这不是garble那种代码混淆器;更像是ProGuard那种。 但是毕竟目前还没有Go的lumina server不是吗(笑) 库函数和你的函数混在一起毕竟还是难认多了 支持到 Go1.25 --- Garble有一个问题,杀毒软件不友好( 但是gstrip甚至可以改进(至少发布时是这样)杀软的兼容性: 以 <a href="elink@2f3K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6L8$3&6Y4M7i4g2S2L8Y4m8W2L8X3N6Q4x3V1k6G2L8X3g2Q4x3X3c8S2M7r3W2Q4x3V1k6J5k6h3I4W2j5i4y4W2M7#2)9J5c8X3c8G2N6$3&6D9L8$3q4V1i4K6u0r3N6U0m8Q4x3X3f1$3i4K6u0W2x3e0m8Q4x3V1k6G2L8X3g2Q4x3X3c8S2M7r3W2Q4x3X3g2W2P5r3f1`.">OneAPI</a> 为例,其原始二进制有  3/71的杀软会误判。  但是gsttrip可以消除这些误判。 注意,oneapi是正常的开源软件;并且作者也不是我,而是songquanpeng先生(我根本没有参与oneapi开发);gstrip只是消除了它的误判。 --- Yara:如果您希望检测gstrip,请使用下列yara规则。 ```yara rule detect_gstrip { strings: $str = "hsqwq_wm" condition: $str } ``` --- Retrace: gstrip允许你还原被混淆的堆栈。举例而言: ```log PS C:\tmp> gstrip -m sample.map .\go_build_hello_woorld.exe 2026/06/29 07:20:09 INFO __ .__ 2026/06/29 07:20:09 INFO ____ _______/ |________|__|_____ 2026/06/29 07:20:09 INFO / ___\/ ___/\ __\_ __ \ \____ \ 2026/06/29 07:20:09 INFO / /_/ >___ \ | | | | \/ | |_> > 2026/06/29 07:20:09 INFO \___ /______> |__| |__| |__| __/ 2026/06/29 07:20:09 INFO /_____/ |__| 2026/06/29 07:20:09 INFO GoStrip | Author: @hs_qwq 2026/06/29 07:20:09 INFO ========================================================== 2026/06/29 07:20:09 INFO > REMEMBER TO -ldflags '-s -w' -trimpath WHEN BUILDING! < 2026/06/29 07:20:09 INFO 2026/06/29 07:20:09 INFO Starting Step 1: Go Build ID 2026/06/29 07:20:09 INFO step1 success extracted=1 start=1552 end=1635 2026/06/29 07:20:09 INFO End Step 1 2026/06/29 07:20:09 INFO 2026/06/29 07:20:09 INFO Starting Step 2: Source File Pool 2026/06/29 07:20:09 INFO Success count=216 blockStart=1066784 blockEnd=1071587 first=internal/abi/escape.go last=hello_woorld/main.go 2026/06/29 07:20:09 INFO End Step 2 2026/06/29 07:20:09 INFO 2026/06/29 07:20:09 INFO Starting Step 3: Stack Trace 2026/06/29 07:20:09 INFO Success count=2744 blockStart=986848 blockEnd=1064123 first=go:buildid last=go:textfipsend 2026/06/29 07:20:09 INFO End Step 3 2026/06/29 07:20:09 INFO 2026/06/29 07:20:09 INFO Starting Step 4: Path Info 2026/06/29 07:20:09 INFO Build info block found, generating fake start=979120 end=981343 size=2223 2026/06/29 07:20:09 INFO step4 success: replaced build info block with fake count=2 start=979120 end=981343 size=2223 2026/06/29 07:20:09 INFO End Step 4 2026/06/29 07:20:09 INFO 2026/06/29 07:20:09 INFO Strip completed successfully output=go_build_hello_woorld_out.exe 2026/06/29 07:20:09 INFO Mapping file written mapping=sample.map PS C:\tmp> .\go_build_hello_woorld.exe Hello, World! panic: 1 goroutine 1 [running]: main.(*test).Say(0xc0000021c0?) hello_woorld/main.go:17 +0x59 main.main() hello_woorld/main.go:9 +0x18 PS C:\tmp> .\go_build_hello_woorld_out.exe Hello, World! panic: 1 goroutine 1 [running]: tls.SendJDxyUUg({0x7ff60236a780?, 0x7ff6023ad470?}) log/encodeesd.go:802 +0x168 xml.Struct.Sendk(0xc0000021c0?) sort/repo/index8s.go:17 +0x59 io.Growav() sort/repo/index8s.go:9 +0x18 sql.GetlEBLD() compare9fbxk.go:285 +0x27d context.DelWvx({}) graphics/marshal.go:1693 +0x1 PS C:\tmp> gstrip -r .\sample.map 2026/06/29 07:20:54 INFO __ .__ 2026/06/29 07:20:54 INFO ____ _______/ |________|__|_____ 2026/06/29 07:20:54 INFO / ___\/ ___/\ __\_ __ \ \____ \ 2026/06/29 07:20:54 INFO / /_/ >___ \ | | | | \/ | |_> > 2026/06/29 07:20:54 INFO \___ /______> |__| |__| |__| __/ 2026/06/29 07:20:54 INFO /_____/ |__| 2026/06/29 07:20:54 INFO GoStrip | Author: @hs_qwq 2026/06/29 07:20:54 INFO ========================================================== 2026/06/29 07:20:54 INFO > REMEMBER TO -ldflags '-s -w' -trimpath WHEN BUILDING! < PS C:\tmp> .\go_build_hello_woorld_out.exe Hello, World! panic: 1 goroutine 1 [running]: tls.SendJDxyUUg({0x7ff60236a780?, 0x7ff6023ad470?}) log/encodeesd.go:802 +0x168 xml.Struct.Sendk(0xc0000021c0?) sort/repo/index8s.go:17 +0x59 io.Growav() sort/repo/index8s.go:9 +0x18 sql.GetlEBLD() compare9fbxk.go:285 +0x27d context.DelWvx({}) graphics/marshal.go:1693 +0x1 PS C:\tmp> .\go_build_hello_woorld_out.exe Hello, World! panic: 1 goroutine 1 [running]: runtime.gopanic({0x7ff60236a780?, 0x7ff6023ad470?}) runtime/panic.go:802 +0x168 main.(*test).Say(0xc0000021c0?) hello_woorld/main.go:17 +0x59 main.main() hello_woorld/main.go:9 +0x18 runtime.main() runtime/proc.go:285 +0x27d runtime.goexit({}) runtime/asm_amd64.s:1693 +0x1 ``` 相当于堆栈对用户不透明,但是你可以正常还原... 是不是非常方便... --- 反射和buildinfo兼容性: 别想了,稀烂( --- 为什么我不用github上面的那个`boy-hack/go-strip`呢?  ~~为什么你不往ida里面拖一下试一试呢~~ --- license gstrip(以下简称“本工具”)是一个中性的技术工具,设计初衷在于帮助开发者保护其知识产权,例如通过对 Go 二进制文件中的符号信息进行混淆,增加逆向工程的难度,从而防止未经授权的代码分析、盗用或篡改。 本工具本身不包含恶意代码,也不以破坏、入侵或非法获取他人信息为目的。使用本工具时,使用者必须严格遵守所在国家或地区的法律法规。任何将本工具用于非法或不当目的(包括但不限于制作或分发恶意软件、绕过安全检测、侵害他人合法权益等)的行为,均与本工具的作者及贡献者无关。若因滥用本工具而导致任何法律纠纷或损失,滥用者须自行承担全部后果。 此外,本工具按“现状”提供,不作任何形式的明示或默示保证,包括但不限于对适销性、特定用途适用性、不侵权以及持续无错误运行的保证。使用者应自行评估并承担使用本工具所带来的全部风险。在任何情况下,作者及贡献者均不对因使用或无法使用本工具而导致的任何直接、间接、偶然、特殊或后果性损害(包括但不限于数据丢失、业务中断、安全性问题等)承担责任。 如您不同意上述条款,请勿使用本工具。一旦使用,即视为您已充分理解并同意本免责声明的所有内容。 --- 文件类型与系统架构兼容性 原则上我连wasm和ppc64、s390x之类的阴间架构都测试了,但是毕竟可能有疏漏之处... 反正如果有问题,请让我知道 --- 哪里下载 附件 --- 源码有吗 可能有吧,但是现在太乱了,让我理理再说 --- 完结撒花
回复或点赞可查看完整内容
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。
注:下载本附件需支付 10雪币(note:10 points for downloading this attachment)
上传的附件:
gstrip_public.zip
(910.23kb,6次下载)
收藏
・
1
点赞
・
13
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
git_99440qimingminimax
为你点赞!
2026-9-23 11:42
sice
非常支持你的观点!
2026-9-22 05:41
sdestroyer
为你点赞!
2026-8-21 17:40
wx_晨梦
感谢你分享这么好的资源!
2026-7-16 09:12
mb_bvvcoitr
+1
感谢你的积极参与,期待更多精彩内容!
2026-7-12 02:50
wusha
+1
为你点赞!
2026-7-1 18:15
Dilene
感谢你分享这么好的资源!
2026-7-1 16:14
ONewTach
你的帖子非常有用,感谢分享!
2026-7-1 09:33
曾半仙
感谢你的贡献,论坛因你而更加精彩!
2026-6-30 10:48
jing2020
感谢你的积极参与,期待更多精彩内容!
2026-6-30 09:37
mb_rjdrqvpa
感谢你的积极参与,期待更多精彩内容!
2026-6-29 21:56
huangyalei
感谢你分享这么好的资源!
2026-6-29 20:32
暗月隐落
+4
你的分享对大家帮助很大,非常感谢!
2026-6-29 09:13
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
3
)
Imxz
雪 币:
112
活跃值:
(9470)
能力值:
( LV2,RANK:10 )
在线值:
发帖
6
回帖
758
粉丝
9
关注
私信
Imxz
2
楼
tql
2026-6-30 17:21
0
YEN成ys
雪 币:
0
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
14
粉丝
0
关注
私信
YEN成ys
3
楼
aaaaaaaaaaaa
2026-8-21 17:13
0
mb_pjnmjzup
雪 币:
36
能力值:
( LV1,RANK:0 )
在线值:
发帖
2
回帖
19
粉丝
0
关注
私信
mb_pjnmjzup
4
楼
1111
4天前
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
the_hs
1
18
发帖
22
回帖
90
RANK
关注
私信
他的文章
[原创]wp:第八题:亥子合辰·塔影迷楼
26
[原创] wp: 第七题:戌时·暗能潜流
53
[原创]wp: 第二题:巳时·绿光幽语
36
[讨论]被kimi k3吓哭
347
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
谁下载
×
曾半仙
huangyalei
sdestroyer
mb_rjdrqvpa
the_hs
Dilene
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部