Heaventools

   English English  Deutsch Deutsch  Français Français  Italiano Italiano  Русский Русский

I use this tool on .SYS files as I am an NT/XP device driver system architect. I was interested in understanding the way .SYS files interact with one another and this tool enabled me to understand that interaction a bit better.

Dominick Cafarelli,
Sniffer Technologies,
Network Associates

I'd like to tell you that PE Explorer is probably the greatest tool I've ever stumbled upon. Up until recently, I've been using a lot of separate tools, some of them old command line style programs, to get the job done. No need for that now. Everything (well, almost) is right there on the toolbar.

Chris LaJoie

“I work in assembly, C and C++. After having used PE Explorer for a few months, I wonder how I managed to work without it. It's worth every cent that it costs. Thanks for develo-ping such a great tool.

Robert Limoges


More praise for PE Explorer

DLL Export Viewer

The Export Function List Viewer shows those functions that may be called upon by other applications. In other words, these functions are what the file is making available to other programs to call upon. PE Explorer DLL Inspector provides important information about entry points, numbers, names and calling syntax of exported functions.

Export Function List Viewer

The actual name of a procedure "as it is to be called" is found in the export table of any executable, EXE or DLL. The name which the calling program is going to use is in that calling program's import table.

When a DLL/EXE exports a function to be used by other DLL/EXE, it can do so in two ways: it can export the function by name or by ordinal only. Say if there is a function named "MapDebug-Information" in a DLL, it can choose to tell the other DLLs/EXEs that if they want to call the function, they must specify it by its name, ie. MapDebugInformation.

The other way is to export by ordinal. An ordinal is a 16-bit number that uniquely identifies a function in a particular DLL. This number is unique only within the DLL it refers to. For example, in the above example, the DLL can choose to export the function by ordinal 31. Then the other DLLs/EXEs which want to call this function must specify this number in GetProcAddress. This is called export by ordinal only.

Quick Function Syntax Lookup

Now, when reviewing functions with the Imports, Exports and Delay Imports viewers, clicking a function entry instantly displays the calling syntax for that function. Parameters, return values, calling conventions are conveniently displayed for you in the window below. Double clicking an entry launches a description editor for adding comments or changing details. Say good bye to digging through bloated help files and slogging through multiple archive volumes just to hash out an API reference.

Quick Function Syntax Lookup

PE Explorer comes bundled with descriptions for 39 various libraries, including the core Windows® operating system libraries (eg. KERNEL32, GDI32, USER32, SHELL32, WSOCK32), key graphics libraries (DDRAW, OPENGL32) and more.

When performing quick syntax lookups, PE Explorer searches through the user directory first then proceeds through the bundled descriptions stopping when a match is found. Results are displayed in the Syntax window located beneath the function entry listing of the particular viewer. If PE Explorer is unable to locate a description set for a particular library or function an appropriate failure message is displayed instead.

Unmangling Feature

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

Unmangling feature

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.

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.

< previous | next >

 

 Download PE Explorer and learn how it can make you more productive.

PE Explorer Data Sheet PE Explorer Data Sheet (PDF) 320 Kb