sample inputs and outputs , discussion of used algorithm
known problems:
it outputs code using prettyprinter (till now, i faced no problems with my samples. but many people in list say it’s problematic)
due to the way it uses prettyprint (statement by statement), it will give output that gives compilation errors, for certain ways of declaring structs/enums in C
Well since no one else replied, and I think it is due to this question
I am about to ask, why would you want to obfuscate C code? It is hard
enough to read as it is, want to make it more readable, not less
readable, so what is the purpose? And do not give me a reason about
needing to make code harder to read, just distribute a library then,
not code, or change your license.
Gimpel software ships FlexeLint for C/C++ as obfuscated code so you
can recompile it on your host without (easily) reverse engineer it.
Sometimes shipping a library is not practical if your customers are
using all kind of weird platforms, ABIs and compilers. That's why
almost all C++ libs ship with the source.
i would like to add that in this package the focus is more on binary obfuscation rather than source-only obfuscation
i.e. if you ship some software that contains some algorithm that you want to hide from a reverse-engineer
the basic idea is to make it hard to analyze the code and reconstruct the algorithm even if it passes through a compiler and regardless of optimizations it may apply