tags:

views:

97

answers:

3

I have several hundreds of DLLs belonging to a huge spagetti-code-project and need to see which calls do they export or import. And it would be also great if I would be able to get a dependency graph between DLLs. Could anyone recommend me free and reliable utilities for that? Thank you.

Edit: Dependancy walker seems to be not enough: I need to get a list not only for requited DLLs but also to know what those DLLs are for.

+3  A: 

Dependency Walker (depends.exe) can do that and is free. It also has a profile feature so you can see which DLLs get loaded dynamically.

depends.exe screenshot

If your DLLs are .Net assemblies you can use Reflector and if it is a COM DLL with a Type Library you can use OleView to get more information. To get more information out of a regular dll you would have to resort to disassemblers and reading assembly.

Lars Truijens
Thank you. It is very useful when someone needs to see which modules are being called by a particular executable. But I need to solve some sort of reverse problem: I need to know what those DLLs are for.
ORA600
It also shows the exported and imported functions from other DLLs. There isn't much more information you can get from a regular DLL. And you can load a DLL instead of an EXE if you want to.
Lars Truijens
A: 

There is no way to get information what DLLs are used for. You have to read the software documentation of your project - hope for you that there is some. Also study the makefiles carefully.

You can use the function names to see source code is mapped into which DLLs and To get this you should use the "dumpbin" tool which comes with MSVC. "Dependancy walker" is just a frontend to this tool.

Then write a few scripts and/or use grep to filter the output to analyse the DLL contents.

You can search SO for other reverse engineering techniques. I believe you will find a lot of information because it is a common skill for programmers.

Lothar
A: 

http://www.ntcore.com/exsuite.php "CFF Explorer" this tool has everything you want. Read features it includes on the main page. Good luck!

faya