tags:

views:

83

answers:

6

I have a desktop(winforms) application, and I'm looking for .net linker that links the assembly to assembler level(lower than IL) in order to prevent reverse engineering. another solution might be acceptable as well. does anyone know of such a linker?

A: 

XenoCode has a cool tool that will help you do that:

http://www.xenocode.com

Pierre 303
thanks but, it leads to spoon server . i'm not sure you meant that.
Itai Zolberg
Apparently they changed their name. But the app still do what the user wants.
Pierre 303
+1  A: 

What you're looking for is an obfuscator. It jumbles up the compiled code so that it still does what it is supposed to do, but if you decompile it, it is incomprehensible to most.

Note that any attempt to make it 100% safe is guaranteed to fail, all you can strive for is making it as hard as possible.

There's many solutions that will do this in various ways:

Note, the last one isn't an obfuscator, it virtualizes out your application. Some of the benefits of that is that it is a bit harder to get to the underlying code, but it is primarily a product that solves different problems, namely the need to separate out the application from the rest of the applications installed (ie. no need for .NET to be installed, no conflicting registry settings, etc.)

Lasse V. Karlsen
thanks but, those are obfuscator/mergers it doesn't link. the acctual link is done during run-time
Itai Zolberg
That is entirely correct. There aren't that many real linkers for .NET. I suggest you look at the answer by Roman, Mono, it has a linker. But as he says, there's plenty of restrictions when going down that route. I would look at the core set of problems you are trying to solve, it may be that you need a different solution than a real linker.
Lasse V. Karlsen
A: 

.Net Reactor is what you are looking for I guess (it is hackable - but way harder than classic obfuscation).

Jaroslav Jandek
+2  A: 

You may want to have a look at the The Mono AOT (Ahead of Time) Compiler :

There are some limitations though: you obviously can't compile an assembly that uses CLR dynamic features, reflection, etc.

Romain Verdier
thanks, i'm looking into it
Itai Zolberg
A: 

Checkout Code Projection by Xeno, its effective.

Akash Kava
A: 

Obfuscation is may be good for your needs. But it still hackable. I don't know any programs and utilities that you asking for but I have an advice for you. If you need to protect not all application code but only critical sections, you can implement this sections in C++/C and use Platform Invoke to interop with unmanaged code. Jeffrey Richter recommended this approach.

Vyacheslav