Stop software from being decompiled

Is there a way to prevent someone from decompiling your .net app. Surely people like Microsoft and Adobe prevent it.
LVL 3
taz8020Asked:
Who is Participating?
 
andreasSystem AdminCommented:
the bad jumps can be identified if necessary, Ive never tried but this software https://github.com/0xd4d/de4dot seems doing a quite good job on de obfuscating, including removing dead code. and sorting back out the created spaghetti-code.
0
 
ozoCommented:
0
 
taz8020Author Commented:
Is there a way of preventing it in stead of just telling them they are not allowed in the terms.
0
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

 
andreasSystem AdminCommented:
Actually it is impossible to prevent decompiling. you just can make it harder with .net obfuscation tools. But if somebody is really interested in your code this will not be of a big use. a good reading about can be found here.

http://stackoverflow.com/questions/2478230/how-can-i-protect-my-net-assemblies-from-decompilation
0
 
ozoCommented:
If you can control physical access to all machines on which the app exists, you might limit them to things like power-monitoring attacks and electromagnetic attacks.
0
 
taz8020Author Commented:
I take it that's why more and more people are doing web apps that look like desktop ones. How would use obfuscation?
0
 
andreasSystem AdminCommented:
Obfuscation is only useful against people who are not very sophisticated in programming. The obfuscator just rearranges your .net assemblies in a way that when decompiled the code looks very untidy and unclear.

But this bfuscated code still could be examined ran via debuggers, etc.

The obfuscator software just take your "compiled" .net assembly and scameles it and write the scrambled one back to a new file which is your "protected" version of the software.

But as told before this obfuscation is a weak protection only.
0
 
taz8020Author Commented:
If I wanted to what software would you recommend?
0
 
andreasSystem AdminCommented:
Sorry I cant answer this one, i know there is a commercial one from preemtive. But ive never used one myself. You can refer on the link i send you above, there are some suggestions of obfuscation tools.

I prefer not to obfuscate, if competitors want to steal they will, even you obfuscate. But you wont get good bug reports from others that can use debuggers and read code if its obfuscated.
0
 
käµfm³d 👽Commented:
I take it that's why more and more people are doing web apps that look like desktop ones.
I don't think so. I think they make web apps that look like desktop apps to give the "feel" of a desktop app, but have the ease of deployment of a web application. Having the ability to use a piece of software anywhere in the world without having to install something on each and every machine I touch is very convenient. Also, web applications tend to be a bit more secure in terms of access to the underlying system of the client machine.

But you wont get good bug reports from others that can use debuggers and read code if its obfuscated.
That's what logging is for  ; )

The obfuscator software just take your "compiled" .net assembly and scameles it and write the scrambled one back to a new file which is your "protected" version of the software.
True, but good ones also write in bad jump instructions and similar in order to prevent decompilation from succeeding.

...i know there is a commercial one from preemtive.
There's also a "community" edition from Preemptive which comes with the various flavors of Visual Studio. It's only good for personal use, though.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.