how to protect .NET executable from de4dot or similar tools?

Shivraj picture Shivraj · Jan 29, 2013 · Viewed 12.5k times · Source

I have tried obfuscation with following obfuscators but none is successful against de40 tool [https://bitbucket.org/0xd4d/de4dot/]

It's really painful to see how easy this is.. just drag the obfuscated .net exe on de4dot.exe and you will get the source code..

Obfuscators tried are:

Agile.NET (aka CliSecure) Babel.NET CodeFort CodeVeil CodeWall CryptoObfuscator DeepSea Obfuscator Dotfuscator .NET Reactor Eazfuscator.NET Goliath.NET ILProtector MaxtoCode MPRESS Rummage Skater.NET SmartAssembly Spices.Net Xenocode

All are useless.. that's really frustrating..

Can you give some better solution for protection against this tool?

Answer

Phenomite picture Phenomite · Mar 1, 2013

de4dot will be compatible with most obfuscators/protectors out there very soon, and if not, something else will.

What I'd do is download Confuser from codeplex and use the advanced feature tab in that.

What I do that ALWAYS works and can't be reversed, is I:

Confuse everything but 'reduce meta' in 'Advanced' in confuser. I then, Compress the assembly with RPX packer. I then, Re-Confuse the compressed assembly with 'Resource encryption' in Confuser.

This makes the assembly almost entirely irreversible (there are always those people who are good crackers). I'd also suggest adding md5/sha-1 encryption to your strings IN the source code.

With all these methods of protection, I'd officially say your .net assembly is very severely protected.