

Minor obfuscation exists to prevent the casual user from poking their fingers in and breaking things easily. Let's start with obfuscation of source code, which is a complete waste of time it's hard enough to understand without that! So let's instead focus on obfuscation of the delivery package, of how the code gets delivered to the user.

Thinking about this, there are several different types of obfuscation. However, this hardly constitutes a "common" case. For instance, if you write viruses, obviously obfuscation (and a dynamic one, preferrably) is as good a thing for your program's survival as it's ability to replicate. I'm not saying you should never obfuscate and that there aren't any good reasons for it, but I seriously question the need for it in most cases, and its cost-effectiveness.įurthermore, there are situations where obfuscation is a de-facto requirement. JavaScript because it is delivered in source form. Programs in all languages, it is just more obviously true with

There is no transformation that will keep a determined hackerįrom understanding your program. Then finally, there is that question of code privacy. The Quality of Obfuscation and Obfuscation Techniques (Witkowska, 2006).The Effectiveness of Source Code Obfuscation: an Experimental Assessment (Ceccato & al., 2009).On the Effectiveness of Source Code Transformations for Binary Obfuscation (Madou & al.).Code (De)Obfuscation (Madou, Anckaert, De Bosschere).Obfuscate C/C++ Code? (for tools for C++ obfuscation, if you really must.).Can JS Code be Encrypted, Making it Hard for Someone to Copy?.

What Are the Advantages of Obfuscating Release Code?.Selected reads on the topic (not all are C++ specific, but the general principles apply): StackExchange Answers As noted in many other similar answers for C++ and other languages, this is mostly useless.
