Why do I need code protection?
All languages that target the Microsoft.NET framework compile your code into assemblies.
These assemblies contain IL (Intermediate Language) code and so-called metadata.
The metadata describes types, methods, fields and much more.
This is good for speed of development, but not for protection of your intellectual
property.
All of this information in your assemblies makes it easy to reverse-engineer your
code.
The following image shows just a fraction of what information is contained in a
simple assembly.
As you can imagine, this kind of information makes it easy for a hacker to find
and use your intellectual property.
It also gives a hacker easy access to your licensing mechanism which he/she can
then work around or disable.
What ever the hacker is doing with your code, it is probably not what you want.
That's why you need code protection and that is where DeepSea Obfuscator comes in.
Read more about how DeepSea Obfuscator protects your code.
What does an obfuscator do?
An obfuscator modifies your assemblies in such a way that your code will run unchanged
but it becomes really hard to understand the code.
To achieve this, an obfuscator uses (a combination of) code modifications called
features.
The most frequently used feature is called renaming.
For example "IsTheLicenseValid" is renamed to "a" making it impossible to guess
what the purpose of the function is.
The image on the right shows the result of renaming the code on the previous page.
The 'blocks' are unreadable characters.
Another frequently used feature is called string encryption.
All strings used in your code are clearly visible in an assembly. String encryption
converts these literal strings into some encrypted form and adds a few instructions
used to decode them at runtime.
Tools like Reflector make it easy to decompile your code into C# or VB.NET code.
It's like reading back your source code without comments.
Control flow obfuscation is a feature that prevents
this. It takes the compiled method code and modifies it such that is becomes "spaghetti".
You may still see some code after decompiling but you have no idea what this code
does.
The features described above are just a few of the features of DeepSea Obfuscator.
You can read more on the
overview page
.
So does this mean that my assemblies can no longer be hacked?
Unfortunately not. Every code, including obfuscated code, can be hacked.
However, by using DeepSea Obfuscator you make hacking your code so much harder,
that it's probably no longer worth the time and money.