|
![]() |
||
|
overview news downloads purchase f.a.q. support partners about us |
|||
|
UNMAGLING THE EXPORTED SYMBOLS
|
|||
|
|||
|
STAY UP-TO-DATE! See what's new TRY IT NOW! Download a 30 day LEARN MORE ABOUT Resource
Editor BUY IT ON-LINE! |
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 disinquishable. 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.
Conversly, 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.
|
||
|
[overview] [news] [screenshots] [downloads] [purchase] [f.a.q.] [support] [sitemap] |
|
|
|
|