tags:

views:

63

answers:

5

Hello,

I have created a .Net assembly and when running an application that uses my assembly through a profiler like jetbrains dottrace, a lot of information is being revealed about my assembly (private methods etc..) (no source code though). Is there anyway to prevent that ?

+2  A: 

have you tried obfuscating? One popular with the natives is Dotfuscator.

Muad'Dib
A: 

A free edtion of Dotfuscator comes with Visual Studio. Take a look at that.

-Oisin

x0n
+2  A: 

I don't get this. Given is that the client of your code is running a profiler. That's not a voluntary act, they do this because they got a problem. What kind of feedback do you prefer? Choose one of:

  1. I've got a serious perf problem with your code. No idea why.
  2. I'm seeing a problem with your Xyz.EatDinnerWashDishes() method, it is too slow to be usable.
  3. I've seen the names of your methods. I hope you don't mind if I start my own company and create a product that uses the same method names. Please don't sue me.
Hans Passant
+1 - this attitude of giving your customers as little information as possible is BAD CUSTOMER RELATIONS. It is what drives folks to use open source.
Stephen C
+1  A: 

It should be noted that even an obfuscator will not prevent reversing of the dll. It will only make it more difficult. If your DLL contains sensitive information you should probably consider encrypting it outside of the dll in another file (though even this is not a perfect solution).

If someone has debug rights on a machine they can pretty much see your assembly in action, as well as intercept and even modify the data it is using.

Is there a specific reason why this concerns you? or is it just a general concern?

GrayWizardx
A: 

Chances are someone who can debug your code can see more than just method names with a reflection tool like .NET Reflector. If this is a problem, you may want to obfuscate some of your code. There are a number free and commercial options.

ty