there are excellent open source compiler frameworks like the excellent llvm/clang stack which, for instance, Apple bases its language compilers off of
so one could get a great deal of leverage by just starting with such an existing compiler and the going to the code generation module (a distinct module in llvm) and work on that to obfuscate - even the higher degrees of optimization alone can tend to make the actual machine instruction sequence rather non-obvious relative to the original source code, but with actual intent, a higher degree of obfuscation could be acheived.
Or one could transform ordinary binary instruction code into an encrypted form that has to be decrypted before it can execute on the target CPU. The decryption could be built into a custom page loader - the decryption key could be provided at program execution time and the key might be kept on something like a removable usb stick or smart card
[–] 26556975? 0 points 1 point 1 point (+1|-0) ago (edited ago)
Interpreters like java/python/csharp can be changed on the fly. You don't need to compile shit. Just rerun the run time with new source and it can auto recompile the object runtime.
Besides, you can hack the signatures of c++ binaries, touch them back before/after the fact. We use to do this all the time on banking servers to hide hot fixes to our c++ software.
We were given it for the specific reason of backwards engineering their code.
[–] 26556316? 1 point -1 points 0 points (+0|-1) ago
I'm glad we have coder faggots like you to explain this shit...