You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
garble/testdata/script
pagran d47e0761eb
Prevent automated plaintext extraction of literals with current tools (#930)
Some programs which could automatically reverse string literals obfuscated with `-literals` exist.

They currently work by emulating the string literal decryption functions we insert.

We prevent this naive emulation from succeeding by making the decryption functions dependent on global state.

This can still be broken with enough effort, we are curious which approach reverse-engineers come up with next, we certainly still have some ideas to make this harder.

Fixes #926
---------

Co-authored-by: Paul Scheduikat <lu4p@pm.me>
4 months ago
..
asm.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
atomic.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
basic.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
cache.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
cgo.txtar avoid patching our reflect code into _cgo_gotypes.go 6 months ago
crossbuild.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
ctrlflow.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
debugdir.txtar refuse to delete unknown files with -debugdir 6 months ago
embed.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
goenv.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
gogarble.txtar clarify and test that runtime.GOROOT is not available 11 months ago
gotoolchain.txtar properly patch the linker when GOROOT is a symlink 6 months ago
goversion.txtar drop support for Go 1.23 6 months ago
help.txtar rely on `go build` stamping a version for local builds 6 months ago
implement.txtar hash structs via the bundled and altered typeutil.hash 9 months ago
imports.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
init.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
ldflags.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
linker.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
linkname.txtar add a testscript with the linknames that bytedance/sonic/loader has 6 months ago
linkname_forbid.txtar refuse to obfuscate bytedance/sonic/loader 6 months ago
list_error.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
literals.txtar Prevent automated plaintext extraction of literals with current tools (#930) 4 months ago
modinfo.txtar bump unsupportedGo to mark Go 1.24 as supported 8 months ago
plugin.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
position.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
reflect.txtar obfuscate all names used in reflection 11 months ago
reverse.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
run.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
seed-cache.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
seed.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
syntax.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
test.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
tiny.txtar drop Go 1.22 and require Go 1.23.0 or later (#876) 11 months ago
typeparams.txtar skip all type parameters in recordType 9 months ago