Public properties of merged DLLs don't get obfuscated

.NET obfuscator and automated error reporting

Moderators: Luke Jefferson, melvyn.harbour, dom.smith

Public properties of merged DLLs don't get obfuscated

Postby claus.net » Tue Apr 29, 2014 9:45 am

According to your documentation it should be possible to obfuscate public properties of merged DLLs as they are turned to "internal".

But this doesn't happen in my project. They remain "public" and don't get obfuscated, only the class name itself is obfuscated but this isn't enough.

What could be the reason for this behavior?
claus.net
 
Posts: 6
Joined: Thu May 26, 2011 2:55 pm

Postby Chris.Allen » Wed Apr 30, 2014 11:16 am

Could you have any of these properties labelled as "internals-visible-to "?
Chris.Allen
 
Posts: 594
Joined: Thu Mar 12, 2009 4:17 pm

Postby claus.net » Wed Apr 30, 2014 11:25 am

No, they aren't labelled that way.
claus.net
 
Posts: 6
Joined: Thu May 26, 2011 2:55 pm

Postby Chris.Allen » Wed Apr 30, 2014 1:26 pm

Put smartassembly in debug mode and we can inspect the resulting log. It shouls tell us why it has excluded anything form obfuscation.


http://documentation.red-gate.com/displ ... rtAssembly
Chris.Allen
 
Posts: 594
Joined: Thu Mar 12, 2009 4:17 pm

Postby claus.net » Wed Apr 30, 2014 3:41 pm

I generated the log.

The relevant properties aren't listed in the log file.


The only entries for a relevant class (as an example) I could find in the log are the following:

2014-04-30 15:19:05,045 TRACE SmartAssembly.ObfuscationAnalyzer: Method [NAMESPACE]NAMESPACE.Accommodation::instance System.Void .ctor(valuetype [mscorlib]System.Guid) excluded from obfuscation: RtSpecialName

2014-04-30 15:19:05,045 TRACE SmartAssembly.ObfuscationAnalyzer: Method [NAMESPACE]NAMESPACE.Accommodation::instance System.Void .ctor() excluded from obfuscation: RtSpecialName

The properties of "Accommodation" stay public and don't get obfuscated.
claus.net
 
Posts: 6
Joined: Thu May 26, 2011 2:55 pm

Postby Chris.Allen » Thu May 01, 2014 1:50 pm

So, my reading of this is that smartassemlby has excluded this from processing simply because it has been labelled with rtspecialname- indicating it has significance at the global level.

If you look at the IL for that method- has it been labelled with rtspecialname?
Chris.Allen
 
Posts: 594
Joined: Thu Mar 12, 2009 4:17 pm

Postby claus.net » Mon May 05, 2014 1:11 pm

Yes, the two constructors are labelled with "rtspecialname".

Nothing else in the class, though.
claus.net
 
Posts: 6
Joined: Thu May 26, 2011 2:55 pm

Postby RobotGizmo » Mon May 26, 2014 7:18 pm

Are there any updates on this? We're having the exact same issue, our merged assembly is still marked as public.
RobotGizmo
 
Posts: 1
Joined: Mon May 26, 2014 7:17 pm


Return to SmartAssembly 6

Who is online

Users browsing this forum: No registered users and 0 guests