garble
garble copied to clipboard
Can't work with github.com/robotn/gohook
What version of Garble and Go are you using?
$ garble version mvdan.cc/garble v0.12.1 Build settings: -buildmode exe -compiler gc DefaultGODEBUG httplaxcontentlength=1,httpmuxgo121=1,tls10server=1,tlsrsakex=1,tlsunsafeekm=1 CGO_ENABLED 1 GOARCH amd64 GOOS windows GOAMD64 v1 $ go version go version go1.22.2 windows/amd64
What environment are you running Garble on?
go env
Output
$ go env set GO111MODULE= set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\xxx\AppData\Local\go-build set GOENV=C:\Users\xxx\AppData\Roaming\go\env set GOEXE=.exe set GOEXPERIMENT= set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOINSECURE= set GOMODCACHE=C:\Users\xxx\go\pkg\mod set GONOPROXY= set GONOSUMDB= set GOOS=windows set GOPATH=C:\Users\xxx\go set GOPRIVATE= set GOPROXY=https://proxy.golang.org,direct set GOROOT=C:\Program Files\Go set GOSUMDB=sum.golang.org set GOTMPDIR= set GOTOOLCHAIN=auto set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64 set GOVCS= set GOVERSION=go1.22.2 set GCCGO=gccgo set GOAMD64=v1 set AR=ar set CC=gcc set CXX=g++ set CGO_ENABLED=1 set GOMOD=C:\Users\xxx\test\go.mod set GOWORK= set CGO_CFLAGS=-O2 -g set CGO_CPPFLAGS= set CGO_CXXFLAGS=-O2 -g set CGO_FFLAGS=-O2 -g set CGO_LDFLAGS=-O2 -g set PKG_CONFIG=pkg-config set GOGCCFLAGS=-m64 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\xxx\AppData\Local\Temp\go-build4228538547=/tmp/go-build -gno-record-gcc-switches
What did you do?
package main
import (
"fmt"
hook "github.com/robotn/gohook"
)
func main() {
fmt.Println("--- Please press ctrl + shift + q to stop hook ---")
hook.Register(hook.KeyDown, []string{"q", "ctrl", "shift"}, func(e hook.Event) {
fmt.Println("ctrl-shift-q")
hook.End()
})
fmt.Println("--- Please press w---")
hook.Register(hook.KeyDown, []string{"w"}, func(e hook.Event) {
fmt.Println("w", e.Button)
})
s := hook.Start()
<-hook.Process(s)
}
garble build
What did you expect to see?
Build successful.
What did you see instead?
# test
yK5eFLx.go:1: jrgqFE.PEiW84p undefined (type b92u892t_Xb6.Event has no field or method PEiW84p)
exit status 2
exit status 1
If I use the -debugdir flag, I can see Event struct's fields in out\github.com\robotn\gohook\hook.cgo1.go are not obfuscated, but in out\test\main.go it calls obfuscated fields, causing an error.
type Event struct {
Kind uint8 `json:"id"`
When time.V07bkfDxYEz
Mask uint16 `json:"mask"`
Reserved uint16 `json:"reserved"`
Keycode uint16 `json:"keycode"`
Rawcode uint16 `json:"rawcode"`
Keychar rune `json:"keychar"`
Button uint16 `json:"button"`
Clicks uint16 `json:"clicks"`
X int16 `json:"x"`
Y int16 `json:"y"`
Amount uint16 `json:"amount"`
Rotation int32 `json:"rotation"`
Direction uint8 `json:"direction"`
}
/*line :1*/ hook.V2U1ZvYvO(hook.KeyDown, []string{"w"}, func(q65PokHbSgia hook.Event) {
/*line :1*/ fmt.Tidl56h("w", q65PokHbSgia.SCdpBi)
})