Missing Names (I think)

Explore, browse and analyze .NET assemblies

Moderators: Luke Jefferson, Charles Brown, StephenC, Alex.Davies, Greg.Tillman, melvyn.harbour

Missing Names (I think)

Postby robbie84 » Sat Dec 04, 2010 3:55 pm

Hello.

I have a slight issue. After opening a clean (non-packed, non-obfuscated, etc) .EXE I got a great output. However, Names of components are missing and are replaced by "garbage". I believe it is names because of this:

private Button DOsAB;

and then:

private void DOsAB(int num1)
{
this.ANOTHER_COMPONENT_NAME.ANOTHER_COMPONENT_NAME_2(num1);
}

Why are the names garbaged? ANOTHER_COMPONENT_NAME represents another comonent with long string of letters and numbers (ADFAfasfas45qw3423aDas). Something like that. Is there any way to get clean disassembly with component (button, textbox, datagrid, etc, etc) names?

I don't believe it is a language or means of writing because lot of other things are disassembled nicely and they are custom named stuff. Like table names, table values, etc.

All of the disassembly is good except for Names of components.

I know it is really easy (a bit time consuming) to rename the component names, but I guess there might be a way to get clean disasm right away?

Any help would be appreciated.
robbie84
 
Posts: 2
Joined: Sat Dec 04, 2010 3:46 pm

Sounds obfuscated to me

Postby haleyjason » Sun Dec 05, 2010 5:04 pm

That sounds obfuscated to me. One of the simpliest ways to make an assembly difficult for someone else to read is to make at least the non public member names and/or type names meaningless. I doesn't make it impossible to follow the logic and doesn't seem to be too hard to reverse until you really start trying to understand it ... then it gets pretty annoying pretty quick.

There really is no fast way to rename members or type names. The way those tools work will put the name mappings in an external file. That means the information you need to get to the original name is not in the assembly and therefore impossible to get without that mapping file.

As long as it is in a character set you can read (some aren't) you could save to text files and use find/replace ... but then the question is - how bad do you really want it...
haleyjason
 
Posts: 78
Joined: Sat Oct 25, 2008 5:34 pm
Location: Seattle, WA

Forgot to mention

Postby haleyjason » Sun Dec 05, 2010 5:13 pm

I forgot to mention, if you think it might be Reflector and not the assembly - then you can open it in ILDasm and look at the heaps - which will show you the names that were included at compile time (with no chance of any error in a disassembling or decompiling tool). Just do the following:

1. Open ILDasm
2. File -> Open then find your dll/exe
3. On the View menu, select the MetaInfo submenu at the bottom and check the RawHeaps item
4. On the View menu, select the MetaInfo submenu again and select Show!

Scroll down and look for the String Heap and you'll see all the type names and member names that were originally compiled in the assembly (probably by an obfuscator in your case).

This will only help you figure out if the names are in fact showing correctly in Reflector or not.
haleyjason
 
Posts: 78
Joined: Sat Oct 25, 2008 5:34 pm
Location: Seattle, WA


Return to .Net Reflector 6.x and .NET Reflector 6.x Pro

Who is online

Users browsing this forum: No registered users and 0 guests