Ryan Rohrer
Ryan Rohrer

Reputation: 599

How to find dynamically loaded modules (the static ones) programatically in windows

I'm trying to port the unix utility ldd to windows, because dependency walker and cygcheck don't quite give me the usage I'm looking for. (also for the learning experience)

Ive been looking all over MSDN, for a windows API that lists dll dependencies of an executable, or even the storage format in the complied exe (just to filter it out), but I've been unable to find anything.

If anyone knows what API call windows uses for listing modules to load, or what patterns I can search for in an executable to find modules to load, please help me out :) thanks!

-note: I'm not looking to profile for dynamic modules, just list the ones that are required at runtime

Upvotes: 3

Views: 2161

Answers (3)

actual
actual

Reputation: 2370

Useful links:

PE COFF Spec

X86 Disassembly/Windows Executable Files

MSDN Magazine Article Part 1

MSDN Magazine Article Part 2

Area of your interest is generally imports directory. This two also may be useful:

Tool Help Library

Debug Help Library

Upvotes: 1

Vineel Kumar Reddy
Vineel Kumar Reddy

Reputation: 4726

Modules loaded with loadlibrary api cannot be found in the exe imports table. So to trace those module we have to use one of the several api monitoring tools. http://www.rohitab.com/apimonitor

www.apimonitor.com

If that is not the case you can simply get all the imports from

dumpbin /import abc.exe

(i am not exactly sure about the command line syntax)

dumpbin is a tool from windows sdk (visual studio also contains it)

Upvotes: 2

Corwin Joy
Corwin Joy

Reputation: 643

Personally, before I spent a lot of time trying to figure out the (likely complex) API calls for this, I would consider running Dependency Walker in console mode and seeing if I could just extract the text data I needed from there.

Upvotes: 1

Related Questions