- Home
- Code Obfuscation Software
- gobfuscate
On the recordRead 11 Oct 202621 facts
gobfuscate
On the record
- Assembly limitation
- Global names and struct methods are not obfuscated in packages that contain assembly files.github.com · read 10 Oct 2026
- Build constraints
- Global names and struct methods that appear multiple times because of build constraints are not obfuscated.github.com · read 10 Oct 2026
- Build flags
- The command supports flags including -keeptests, -noencrypt, -nostatic, -outdir, -padding, -tags, -verbose, and -winhide.github.com · read 10 Oct 2026
- Build options
- Flags include options for keeping tests, static linking, outputting a full GOPATH, compiler tags, verbose mode, custom hash padding, CGO-related build behavior, and hiding a Windows GUI.github.com · read 11 Oct 2026
- CGO limitation
- Packages using CGO cannot have package names renamed, and CGO also prevents global names and struct methods from being obfuscated.github.com · read 10 Oct 2026
- Global names
- It hashes global variable, constant, function, and newly defined type names.github.com · read 10 Oct 2026
- Install and use
- The README shows installation with `go get -u github.com/unixpickle/gobfuscate` and use as `gobfuscate [flags] pkg_name out_path`.github.com · read 11 Oct 2026
- License
- The repository describes the project as BSD 2-Clause licensed.github.com · read 11 Oct 2026
- Limit: assembly and build constraints
- Global names and struct methods are not obfuscated in packages with assembly files or when names appear multiple times because of build constraints.github.com · read 11 Oct 2026
- Limit: CGO
- Packages using CGO cannot have package names renamed, and CGO also prevents global-name and struct-method obfuscation under the stated refactoring restrictions.github.com · read 11 Oct 2026
- Limit: constants
- The README says converting string constants to variables does not work for mixed const/int blocks.github.com · read 11 Oct 2026
- Limit: methods
- Struct methods matching methods of imported interfaces are not renamed.github.com · read 11 Oct 2026
- Maker
- The GitHub owner profile identifies unixpickle as Alex Nichol and describes him as an AI researcher, hobby web developer, and math geek.github.com · read 11 Oct 2026
- Method names
- It hashes most struct method names, but leaves methods whose names match methods of imported interfaces unchanged.github.com · read 10 Oct 2026
- Obfuscates
- It manipulates package names, global variable and function names, type names, method names, and strings.github.com · read 11 Oct 2026
- Package names
- It copies a subset of GOPATH and hashes package names and paths to obscure them in the executable.github.com · read 10 Oct 2026
- Package paths
- It copies a subset of GOPATH and hashes package names and paths, which the README says can remove details such as GitHub usernames from the executable.github.com · read 11 Oct 2026
- Purpose
- gobfuscate compiles Go binaries from obfuscated source code to make source information in the binary difficult or impossible to decipher.github.com · read 11 Oct 2026