常用 garble 命令及参数

30
Nov

常用 garble 命令及参数

在 Go 语言中,garble是一个用于源码混淆的工具,常用于保护 Go 应用的源码。它可以通过对代码进行混淆来使反编译后的代码难以阅读。


常用garble命令及参数

garble是通过修改 Go 构建过程中的编译步骤来实现的,因此它的参数和命令通常与 go build 或 go run 类似。以下是一些常用的参数和用法:


1. 基本用法

构建混淆后的二进制文件:

garble build

这个命令会将代码混淆后生成一个二进制文件。


运行混淆后的程序:

garble run


2. 参数

-literals启用文字字面量混淆,例如字符串或数字:

garble -literals build


-debugdir指定一个目录来存储调试信息(如映射文件),便于开发者后续调试:

garble -debugdir=debug build


-seed用于指定混淆的种子值,保证每次混淆的结果可复现:

garble -seed=12345 build


-tiny使混淆生成的代码更简短(可能会影响某些优化):

garble -tiny build


-debug在混淆时保留调试符号(如变量名),仅用于开发调试目的:

garble -debug build



3. 混淆特定的包

可以通过指定包路径来只混淆部分代码,例如:

garble build ./mypackage



4. 支持的 Go 命令

garble 支持以下 Go 命令:

build

run

test

install



5. 示例

混淆并构建一个 Go 应用:

garble -literals -tiny build -o output_binary


混淆并运行:

garble run main.go


如何查看可用版本?

运行以下命令列出所有可用版本:

go list -m -versions mvdan.cc/garble



安装指定版本的:

go install mvdan.cc/[email protected]


更新最新版:

go install mvdan.cc/garble@latest