Usually,the Non-open program with .net will have some important code and some sensitive information, we did not want to open them to others,as we know, it’s very easy to reverse the .net program exe and dll file, so we have to encrypt our program to avoid being reversed.
I have tried all kind of obfuscation tools,they always have some issues,for example:
1.Always show some source code after obfuscation.
2.Can not be executed after obfuscation.
3.The obfuscated DLL can be used,but the program with obfuscated DLL can not be debuged on IDE tool like Visual Studio.
4.many antivirus software will recognize the obfuscated exe or dll file as a virus.
So we decide to find a satisfying software,we found the ILProtector, it solved all these issues perfectly , it is easy to use also,we highly recommend it. The official website is: http://vgrsoft.net/
We will use a simple example to demonstrate the obfuscation effect and operation instructions.
Firstly, we will show the obfuscation effect:
1.Here is source code:
We defined the Sum( int x , int y) and button_Click(object sender , EventArgs e) function and compare the confusion effect before and after the confusion.
2.Reverse the exe file before confusion :
Obviously, the reverse code ( Sum( int , int ) and buuton1_Click( object , EventArgs) function) is same with source code.
3.Reverse the exe file after confusionwith ILProtector:
The code (Sum( int, int ) and buuton1_Click( object, EventArgs) function) is completely unreadable after confusion.
Now, we will show how to confuse your exe via ILProtector software step by step, the steps for dll file is same:
1.Download ILProtector from website and install it.
Introduction:
ILProtector is a protector for .NET applications. ILProtector is designed to protect intellectual property of the software.
ILProtector allows to protect your .NET code quickly and without distractions on routine tasks.
Confusion theory:
ILProtector will switch the intermediary language MSIL from .net applications to special code, so the other software can not reverse it.
ILProtector support the .net 2.0, 3.0, 3.5, 4, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8.
ILProtector support 32bit or 64bit windows system.
ILProtector support String encryption and Integrity checking.
2.Drag your exe or dll file to the “Assemblies” dialog box under “Project”
Firstly,Drag file to Assemblies.
Then set the output folder.
3.Right-click the file, click “Properties”, and set “EnableIntegrity” and “EncryptStrings” to True
Notes:
EnableIntegrity:
It will check the integrality of your program,it can not be executed when the program was modified unexpectedly.
EncryptStrings:
It will encrypt the string variables in your program if you set it to True.
For other options, you can check the corresponding tips.
4.Select the “Protection” to embed the protection code in the exe or dll file and click “Save”
Notes:
Inherit form ILProtector options
It menas you can also put the protection code to independent dll file, it will out put the exe and dll file with two extra dll files.
5.Finally, click “Process” to output the confused exe or dll file.
6.If you meet some error and can not output the confused file, maybe you can check the IDE location in “Options”