Skip to content

Releases: burrowers/garble

v0.9.3

12 Feb 18:00
v0.9.3

Choose a tag to compare

This bugfix release continues support for Go 1.19 and 1.20, and features:

  • Support inline comments in assembly to fix GOARCH=ppc64 - #672
  • Avoid obfuscating reflect.Value to fix davecgh/go-spew - #676
  • Fix runtime panics when using garble build inside a VCS directory - #675

Thanks to @pagran and @lu4p for their contributions!

v0.9.2

07 Feb 17:22
v0.9.2

Choose a tag to compare

This bugfix release continues support for Go 1.19 and 1.20, and features:

  • Support go:linkname directives referencing methods - #656
  • Fix more "unused import" errors with -literals - #658

Thanks to @pagran and @lu4p for their contributions!

v0.9.1

26 Jan 11:53
v0.9.1

Choose a tag to compare

This bugfix release continues support for Go 1.19 and the upcoming Go 1.20, and features:

  • Support obfuscating code which uses "dot imports" - #610
  • Fix linking errors for MIPS architectures - #646
  • Compiler intrinsics for packages like math/bits work again - #655

Thanks to @pagran and @lu4p for their contributions!

v0.9.0

17 Jan 22:39
v0.9.0
71eda05

Choose a tag to compare

This release continues support for Go 1.19 and the upcoming Go 1.20.

Noteworthy changes include:

  • Randomize the magic number header in pclntab - #622
  • Further reduce binary sizes with -tiny by 4% - #633
  • Reduce the size overhead of all builds by 2% - #629
  • Reduce the binary size overhead of -literals by 20% - #637
  • Support assembly references to the current package name - #619
  • Support package paths with periods in assembly - #621

Note that the first two changes are done by patching and rebuilding Go's linker.
While this adds complexity, it enables more link time obfuscation.

Thanks to @pagran and @lu4p for their contributions!

v0.8.0

15 Dec 21:59
v0.8.0
82b955d

Choose a tag to compare

This release drops support for Go 1.18, continues support for Go 1.19, and adds initial support for the upcoming Go 1.20.

Noteworthy changes include:

  • GOGARBLE=* is now the default to obfuscate all packages - #594
  • GOPRIVATE is no longer used, being deprecated in v0.5.0
  • Obfuscate assembly source code filenames - #605
  • Randomize the lengths of obfuscated names
  • Support obfuscating time and syscall
  • Avoid reflect method call panics if reflect is obfuscated

Thanks to @Azrotronik, @lu4p, and @capnspacehook for contributing to this release!

v0.7.2

26 Sep 11:30

Choose a tag to compare

This bugfix release continues support for Go 1.18 and 1.19 and features:

  • Fix an edge case resulting in bad syntax due to comments - #573
  • Avoid a panic involving generic code - #577
  • Obfuscate Go names in assembly header files - #553
  • Support garble reverse on packages using cgo or assembly - #555

v0.7.1

02 Aug 14:54

Choose a tag to compare

This bugfix release finishes support for Go 1.19 and features:

  • Obfuscate all cgo filenames to not leak import paths
  • Support obfuscating net and runtime/debug
  • Don't leak temporary directories after obfuscating
  • Fix an edge case resulting in broken import declarations
  • Reduce allocations involved in obfuscating code

v0.7.0

10 Jun 09:42

Choose a tag to compare

This release drops support for Go 1.17, continues support for Go 1.18, and adds initial support for the upcoming Go 1.19.

Noteworthy changes include:

  • Initial support for obfuscating generic code - #414
  • Remove unused imports in -literals more reliably - #481
  • Support obfuscating package paths ending with .go - #539
  • Support installing garble in paths containing spaces - #544
  • Avoid a panic when obfuscating variadic functions - #524
  • Avoid a "refusing to list package" panic in garble test - #522
  • Some module builds are now used as regression tests - #240

Thanks to @lu4p, @pagran, and @shellhazard for their contributions in this release!

v0.6.0

22 Mar 14:42

Choose a tag to compare

This release adds support for Go 1.18 while continuing support for Go 1.17.x. Note that building generic code isn't supported just yet.

Noteworthy changes include:

  • Obfuscation is now fully deterministic with a fixed -seed - #449
  • Improve support for type aliases to fix some build failures - #466
  • Add support for quotes in -ldflags as per go help build - #492
  • Fail if the current Go version is newer than what built garble - #269
  • Various optimizations resulting in builds being up to 5% faster - #456

Thanks to @lu4p and @capnspacehook for their contributions in this release!

v0.5.1

18 Jan 17:31

Choose a tag to compare

This bugfix release features:

  • Obfuscate exported names in main packages
  • Fix build errors when using -literals with GOGARBLE=*
  • Avoid breaking -ldflags=-X when -literals is used
  • Avoid link errors when using -debugdir
  • Speed up obfuscating the runtime package