tags:

views:

60

answers:

3

Anyone knows such a tool?

+4  A: 

If you want to dump all the exports, you may use DUMPBIN, a tool provided with Microsoft Visual C++ (I think it is present also in the Express version and in other development bundles, e.g. the Platform SDK and the Windows DDK). You can use the /EXPORTS switch to dump all the exports; DUMPBIN has also many other options, it's quite impressive how much information can be extracted with such a little tool.

If you prefer to go GUI, you may find the Dependency Walker (AKA depends.exe) useful, it lists all the dependencies of executables and dlls, providing also their full export table graphically. It also can undecorate mangled C++ names, which in some cases can be very useful. IIRC it too is included with VC++ and Platform SDK, but can also be downloaded easily from it's home page.

Keep in mind that, unless they changed them recently, these tools can only dump "normal" exported functions and data fields, not COM or .NET exports.

Matteo Italia
there is a nice GUI version of Dumpbin(with shell extensions), open-source too, see here: http://www.cheztabor.com/dumpbinGUI/index.htm
Necrolis
@Necrolis: Nice, didn't know about it.
Matteo Italia
+1  A: 

In addition to dumpbin and Dependency Walker, both of which can only dump regular exports, there's also a tool called OLE-COM Object Viewer for the occasional COM DLL (should work for .NET too, I guess).

Pedro d'Aquino
I don't think that it can work with all the .NET dlls, since they don't export stuff via COM by default. On the other hand, for .NET you can use `ildasm` (included in the .NET Framework) and see everything.
Matteo Italia
A: 

API Monitor should do the job.

Voulnet