pagran
pagran
Of the cryptographic hashes sha1 usually shows good speeds (although it is obsolete) Bench: https://github.com/SimonWaldherr/golang-benchmarks#hash But we can use non-cryptographic hashes, such as fnv (example implementation: https://github.com/segmentio/fasthash) 64 bits should...
I vote for ast obfuscation. Obfuscation of sources without much difficulty will allow to implement some classical methods. 1. Conditional obfuscation, for example (there are many ways): ``` if (err...
I implemented PoC of junk code injection: https://github.com/pagran/garble/tree/flow-obfuscation Output example: https://gist.github.com/pagran/bca8e94be277b90b9d78185ab64e208e Final build size increases depending on obfuscator settings (check [here](https://go.godbolt.org/)), but performance drops very slightly. Does it make sense...
Main idea of junk code is simple, to "blur" the original code. This is by no means controlflow obfuscation (which requires good control flow analysis). The junk code should protect...
Okay, then I propose to create a separate issue with a list of possible "transformations", for example if -> state machine After approval, I will already start writing code.
Sure :) p.s. Why didn't github notify me about this message? -_-
It's a bit sudden, but it' possible to make a fully "reflection-frendly" mode obfuscation. If disable all names obfuscation and move method bodies to separate functions and hide the calls,...
A small note, the environment variables can expose the user's "private" information (e.g. the name of his user account in the system) And I think in some cases it is...
I like the idea of explicitly indicating which expressions to obfuscate. For example, we can obfuscate the logic of checking a license without regard to speed and size, but do...
In theory, no-op APIs should be more flexible. They allow you to wrap multi-line logic. ```go garble.ObfuscateBlock(func() { // open license file // check rsa signature // something else })...