Dlls/ExcludePublicMembers: Private methods signature?

.NET obfuscator and automated error reporting

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

Dlls/ExcludePublicMembers: Private methods signature?

Postby mclarke » Thu Feb 02, 2012 11:35 am

Hi,

I'm obfuscating a DLL (SA 6.6.1.44) and I'm a little surprised that the signature of the private methods aren't changing. What I mean is if I had a class as follows:

Code: Select all
public class MyImportantClass {
//... public stuff here

private void MyComplicatedMethod(object aNameThatGivesAClue) {
 //... important stuff here
}

}


The private method gets obfuscated to:

Code: Select all
private void *unprintablecharacter*(object aNameThatGivesAClue) {
 //... obfuscated code, but with the object name everywhere!!
}


I would have expected something along the lines of:

Code: Select all
private void *unprintablecharacter*(object xasih) {
 //... obfuscated code, unclear what xasih is for.
}



I don't know if I've overlooked something, so I'd like to clarify if I'm doing something wrong?

If not, as it makes the code that much more readable, could this be included as a feature please? The same behaviour happens if you specify ExcludePublicMembers in the .saproj file for an exe.

Martin
mclarke
 
Posts: 6
Joined: Wed Feb 01, 2012 4:33 pm

Postby Chris.Allen » Fri Feb 03, 2012 12:09 pm

Can you try the pruning feature in addition please?
Chris.Allen
 
Posts: 594
Joined: Thu Mar 12, 2009 4:17 pm

Postby mclarke » Fri Feb 03, 2012 12:46 pm

Pruning doesn't seem to work where the parameter is opitonal.

For example...

Code: Select all
    public class Program
    {
        public void DoIt()
        {
            MyImportantMethod();
            MyImportantMethod("Test");
        }
        private object MyImportantMethod(string AnImportantMethod = "Test")
        {

            if (AnImportantMethod != null && AnImportantMethod.Length < 5)
                // trivial...
                return new object();
            else
                // trivial...
                return null;

        }
    }


returns the following sig for the private method.

Code: Select all
private object \\u0001(string AnImportantMethod = "Test")
mclarke
 
Posts: 6
Joined: Wed Feb 01, 2012 4:33 pm

Postby Chris.Allen » Mon Feb 06, 2012 4:35 pm

This is because it is now necessary to include this information at runtime.

I will ask our development team if we can improve the behaviour. I cannot promise anything, however.
Chris.Allen
 
Posts: 594
Joined: Thu Mar 12, 2009 4:17 pm

Postby Chris.Allen » Fri Feb 10, 2012 3:05 pm

I have been notified that this will categorically be fixed in the next product update- this is due in 1 month's time.
Chris.Allen
 
Posts: 594
Joined: Thu Mar 12, 2009 4:17 pm

Postby dom.smith » Fri Feb 10, 2012 5:25 pm

Hi Martin,

Just to update you on what Chris said, we're going to try to get a patch out for this at the start of next week (hopefully Monday 13th).

Thank you for reporting this.

Dom.
Dominic Smith,
Project Manager,
Red Gate Software.
dom.smith
 
Posts: 95
Joined: Thu Jun 03, 2010 5:54 pm
Location: Cambridge, UK

Postby mclarke » Mon Feb 13, 2012 10:20 am

Dom/Chris,

Thanks for the update, that is great news regarding a patch. Should I just keep an eye on the forum for the patch being released?

Thanks,
Martin
mclarke
 
Posts: 6
Joined: Wed Feb 01, 2012 4:33 pm

Postby dom.smith » Mon Feb 13, 2012 10:41 am

I'll post an update in this thread when we release the patch but, yes, it will also be announced in a separate post on this forum.
Dominic Smith,
Project Manager,
Red Gate Software.
dom.smith
 
Posts: 95
Joined: Thu Jun 03, 2010 5:54 pm
Location: Cambridge, UK

Postby dom.smith » Wed Feb 15, 2012 7:24 pm

Hi Martin,

Just a quick update for you. You have probably noticed that we haven't managed to release SmartAssembly 6.2.2 quite as quickly as we'd hoped. We're now aiming to make this release on Friday. Again, I'll let you know here when that happens.

Sorry for the delay,

Dom.
Dominic Smith,
Project Manager,
Red Gate Software.
dom.smith
 
Posts: 95
Joined: Thu Jun 03, 2010 5:54 pm
Location: Cambridge, UK

Postby mclarke » Thu Feb 16, 2012 10:27 am

Thanks for the update Dom.
mclarke
 
Posts: 6
Joined: Wed Feb 01, 2012 4:33 pm

Postby dom.smith » Fri Feb 17, 2012 4:58 pm

Hi Martin,

I've just released SmartAssembly 6.6.2.35. You should be able to download it by clicking on 'Check for updates' in SmartAssembly.

Thanks for your patience,

Dom.
Dominic Smith,
Project Manager,
Red Gate Software.
dom.smith
 
Posts: 95
Joined: Thu Jun 03, 2010 5:54 pm
Location: Cambridge, UK


Return to SmartAssembly 6

Who is online

Users browsing this forum: No registered users and 0 guests