views:

290

answers:

3

Hello.

I used dotfuscator to protect my source code and I disabled renaming(to keep public methods and class names correct) but I noticed when I used reflector to see the assemblies after encryption that they didn't changed a lot. I still can see the source code. Any information?

A: 

dotfuscator only obfuscate your code, it doesn't hide it completely from prying eyes.

If you really want "hide" the method body from Reflector, I suggest you to use Clisecure. Clisecure can make the logic body disappear while maintaining all the method name.

Do you have an option to obfuscate the logic? You should use that; it will make your logic harder to understand.

Ngu Soon Hui
+1  A: 

If you disable renaming that means that none of the symbols (methods, types, etc) in your assembly will be renamed, that mitigates much of the usefulness of obfuscation.

If you just want to preserve the names of your publicly accessible methods instead of disabling renaming turn on library mode for each of the assemblies whose public methods you want to exclude from renaming.

In addition, renaming on its own will not cause Reflector to not show decompiled source. In order to break the decompilation you need to be sure to have Control Flow obfuscation enabled as well.

Joe Kuemerle
+1  A: 

You can specify finely what will be excluded from the renaming phase by using a Obfuscation attribute. For example on a property:

[Obfuscation(Feature = "renaming", Exclude = true)]
public int MyProperty
{
    get { return this.prop; }
}
Laurent Etiemble