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.

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.

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

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

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.

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??

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.

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.

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 :( )

"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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.