Hello.

I was wondering how a person could stop the casual "reverse engineer" from reflecting out your VB.net code using reflector or similar tools?

I know there are a few $$$3rd party$$$ tools that do it...

I know that C can be compiled to native code, So I assume you could write a ICLRRuntimeHost that loads an encrypted stream(after the C code decrypts it of course) of the .net assembly you wish to load. I'm going to guess thats how many of the 3rd party apps do it. But every time I have tried to write the simplest versions of this code I fail. Seems like I was able to create the RuntimeHost, but I couldn't figure out the encrytion/decrytion part in C. Which of course just left assembly sitting there nicely as a resource to be easily extracted with the most basic tools.

Seeing as this is a VB forum, I dont expect help with the C code(but if you can provide a link/info thats great too).

But I was wondering how others who would like to protect their intellectual property (Your VB.net code) do it?

I have used babel before, and I seem to recall it worked pretty well...

Anyone else have experience in this?

PS. I know that putting most of the "business code" on a server and having the client only act as a GUI is the most surefire way of protecting your intellectual property, but thats not my question here =)