Heaventools

   English English  Deutsch Deutsch  Русский Русский

home  products  pe explorer  feature tour

UNMAGLING EXPORTED SYMBOLS

Unmangling: Back to Human-Readable Names

Among the exported and imported functions of DLLs there may be found DLLs written in C++ that often export functions with mangled names. Because the C++ programming language allows programmers to give different entities the same name, C++ compilers generate external entity names that include information regarding aspects of the entity's type and fully qualified name in order to keep them disinguishable. This name "mangling" ensures that external names will not clash and that entities with strange names, such as operators (eg. "=", "+", "*" ...), have alphanumeric names that a linker will accept.

Unmangling feature

Conversely, mapping mangled names back to human-readable ones can be quite a challenge as different vendors employ different encoding schemes to generate these external names. For example, when compiling a function with this signature:

char * istrstream::str(void)

Microsoft C++ compilers embellish it like this:

?str@istrstream@@QAEPADXZ

and Borland C++ compilers embellish it like this:

@std@istrstream@str$qv

PE Explorer is able to internally unmangle the exported symbols from libraries compiled with both Microsoft and Borland C++ compilers.

See also: Quick Function Syntax Lookup and Exports Viewer

Feature Tour  
 prev | next 

 

 

PE Explorer

   View Screenshots

   Download a 30 day trial version of PE Explorer Buy the Full Version