Как программно найти динамически загружаемые модули (статические) в Windows - PullRequest
2 голосов
/ 21 апреля 2010

Я пытаюсь перенести утилиту Unix ldd на windows, потому что средство обхода зависимостей и cygcheck не совсем дают мне то использование, которое я ищу. (также для обучения)

Я искал по всему MSDN Windows API, который перечисляет зависимости dll исполняемого файла или даже формат хранения в исполняемом exe (просто чтобы отфильтровать его), но я не смог ничего найти. 1003 *

Если кто-нибудь знает, какие окна вызовов API используются для вывода списка модулей для загрузки, или какие шаблоны я могу найти в исполняемом файле, чтобы найти модули для загрузки, пожалуйста, помогите мне. :) спасибо!

-note: я не ищу профиль для динамических модулей, просто перечисли те, которые требуются во время выполнения

Ответы [ 3 ]

2 голосов
/ 21 апреля 2010

Модули, загруженные с помощью loadlibrary api, не найдены в таблице импорта exe.Поэтому для отслеживания этих модулей мы должны использовать один из нескольких инструментов мониторинга API.http://www.rohitab.com/apimonitor

www.apimonitor.com

Если это не так, вы можете просто получить весь импорт из

dumpbin/ import abc.exe

(я не совсем уверен в синтаксисе командной строки)

dumpbin - это инструмент из Windows SDK (Visual Studio также содержит его)

1 голос
/ 21 апреля 2010

Полезные ссылки:

PE COFF Spec

Разборка X86 / исполняемые файлы Windows

MSDN Magazine Часть 1 статьи

MSDN Magazine Article Part 2

Область вашего интереса - это, как правило, каталог для импорта. Эти два также могут быть полезны:

Библиотека справки по инструменту

Библиотека справки отладки

1 голос
/ 21 апреля 2010

Лично, прежде чем я потратил много времени, пытаясь выяснить (вероятно, сложные) вызовы API для этого, я подумал бы о том, чтобы запустить Dependency Walker в режиме консоли и посмотреть, смогу ли я просто извлечь из него текстовые данные, которые мне нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...