Programming languages evolve everyday with new features being added to address and embrace changes. These changes can be bug fixes or security fixes or a totally new feature. Development on decompilers happens in parallel as well to regain a third party source code. And on another track is the development going on full blast on the obfuscators or the code-comrades. Let’s look at how an obfuscator defends the source code from being decompiled. A good understanding of the source code and general programming language knowledge is required to appreciate what an obfuscator does to protect the code. Any piece of code will have variable declarations in the form of numbers or text, which will be used inside as it progresses. Statements and conditions follow these declarations and the logic or the purpose of the code is written based on these. Other major things inside the code will be handling memory leaks and exceptions both of which are concepts to keep the code from breaking mid-way due to over load or memory shortage. Obfuscator first renames the types and the names of the variables which will confuse the code flow since the code will expect the exact name of a variable when being referenced anywhere inside the code. Now, when this code is decompiled, the references are already lost and it would take years to figure out which variable is being referenced where, depending on the length of the code. This is pretty basic stuff for obfuscators as the next level is to totally mess the control flow itself which would only be understandable to the one who conceived the code. The flow would be broken to a third party decompiler and would make no sense in the flow’s logic. Then the text or strings used in the code would be encrypted making it difficult to comprehend for the run time that is trying to compile this code. The exception handling logic inside the code will be dithered beyond comprehension causing the code to never get compiled again. All along, the byte code still carries the original manipulations but only understandable to the underlying run time. Some obfuscators go to an extent of blocking a code to run only on a specific domain or set to expire after a particular period. Unlike plugins over an existing IDE, dedicated obfuscators can do syntax checking for a code and start correcting the programmer from the first line of writing code till the code is compiled and made ready for deployment. The current obfuscators are more intelligent in terms of supporting multiple versions of the run times and to protect source codes of multiple programming languages. About the author: Dotwall Obfuscator is a powerful obfuscator for dot NET applications (Windows Forms, exe and dlls). Dotwall Obfuscatoris designed to protect intellectual property of your software, to prevent reverse engineering of your code and defeat the attackers from decompiling your application. The next time you think of protect .NET application then dotwall's Obfuscator is the most powerful tool available.
Related Articles -
obfuscator, .net, obfuscation, protect.NET application, csharp obfuscation, dotwall obfuscator,
|