954,514 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Preventing decompilers in .NET

Today I found 2 distinct program which can takes .exe's and gives sorce code exactly, same method names, same class names, same variables also. I am trying to find a solution which can stop this decompilers. I found solutions but they just make the decompiling job harder. I need to make it impossible to see C# source code. Do you know any solution for this ?

Not only solution, if you have any idea we can discuss it ?

I am waiting for your replies.

noktasizvirgul
Newbie Poster
13 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

If you have an ASP.NET server, then create a service with a set of methods for you application that the client will call, so the "valuable" code will be stored on the server.

My point is, once the machine code is available to the client, reverse engineering is always possible.

If you're not looking for a 98% foolproof way, then there are several .NET obfuscation tools available for a charge.

scru
Posting Virtuoso
1,629 posts since Feb 2007
Reputation Points: 975
Solved Threads: 140
 

I'm sure you have already looked at obfuscation. That is about the best solution. If you are writing managed code, as in C#, it can be decompiled.

Here is a program that makes it harder than just plain obfuscation, but still doable, think its outdated now, but there might be something like it floating around.

http://www.remotesoft.com/salamander/protector.html

dickersonka
Veteran Poster
1,175 posts since Aug 2008
Reputation Points: 130
Solved Threads: 143
 

Have you ever actually had problems with people decompiling your code?

sarehu
Posting Whiz in Training
289 posts since Oct 2007
Reputation Points: 98
Solved Threads: 22
 

This is a pretty big issue when it comes to .Net applications. In case you haven't, I would read up on .Net Obfuscation , which is the simplest way to protect your applications.

RemoteSoft's Protector is more advanced, but definitely more powerful. I have used it in the past and it's very good. But nowadays Xenocode is a more up-to-date company with also some impressive software.

Just watch out for simple .Net encryptors, they don't really protect applications as well as they say.

vckicks
Junior Poster in Training
58 posts since Jun 2008
Reputation Points: 11
Solved Threads: 9
 

Yes I have problems with people decompiling my code now.

I found a program which works well to now, CodeVeil. Anybody has any idea about this program??

noktasizvirgul
Newbie Poster
13 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

Looks interesting, although I've never heard of it before. Just as long as it encrypts .Net programs by parts instead of the entire application and then running it on memory, it should be okay.

vckicks
Junior Poster in Training
58 posts since Jun 2008
Reputation Points: 11
Solved Threads: 9
 

Only potential downside to that app is that it uses native code, as a result anyone trying to use mono or such would find it wouldnt run.

LizR
Posting Virtuoso
1,791 posts since Aug 2008
Reputation Points: 196
Solved Threads: 190
 
Only potential downside to that app is that it uses native code, as a result anyone trying to use mono or such would find it wouldnt run.

I cannot understand clearly. What do you mean "potential downside to that app is that is uses native code" :S

Can you explain it a little bit? (I'm not a native speaker so maybe the reason of the problem is me, sory :( )

noktasizvirgul
Newbie Poster
13 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

"Native code" is a very common term. Hence their website says so without explaination.

.net relys on a framework and is compiled and run at runtime. Native code is platform specific.. eg win32, linux etc, so as it compiles win32 ONLY code in, it wouldnt run on anything other than windows.

LizR
Posting Virtuoso
1,791 posts since Aug 2008
Reputation Points: 196
Solved Threads: 190
 

Obfuscation is the way to go. Use Crypto Obfuscator on your production assemblies.

ghimangi
Newbie Poster
20 posts since Jan 2009
Reputation Points: 10
Solved Threads: 1
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You