Как узнать, какие функции Win API вызываются из скомпилированной библиотеки c / c ++ - PullRequest
0 голосов
/ 09 сентября 2010

У меня есть скомпилированный C / C ++ Dll.

Я хотел бы знать, какая функция внешнего API вызывается этим Dll.

Знаете ли вы какие-либо инструменты, которые могут предоставить эту информацию.

Спасибо.

Ответы [ 6 ]

11 голосов
/ 09 сентября 2010

Вы можете использовать Dependency Walker , чтобы увидеть импорт API DLL. Конечно, это не говорит вам, выполняет ли DLL динамическую загрузку или использование COM.

Кроме того, вы можете использовать более тяжелое расширение logexts для windbg, которое будет сбрасывать все вызовы API во время выполнения.

3 голосов
/ 09 сентября 2010

Используйте утилиту dumpbin с параметром командной строки /imports. Также есть утилита depends.exe, которая в качестве графического интерфейса.

Имейте в виду, что они не скажут вам ни о функциях, которые вы используете для связи GetProcAddress, ни об интерфейсах, к которым вы обращаетесь через COM.

2 голосов
/ 09 сентября 2010

Зависимость Уокер (зависит.exe) будет вашим другом.

0 голосов
/ 24 марта 2014

Ida Pro, общепризнанный дизассемблер.Он имеет отдельную вкладку для функции импорта и экспорта. Он имеет несколько других применений в области обратного инжиниринга.

0 голосов
/ 03 октября 2010

AFAIK, средство обхода зависимостей показывает только те функции, которые вызываются напрямую, а не те, которые вызываются через указатели функций.Если вы хотите найти все вызываемые API, зарегистрируйте все вызовы GetProcAddress.

0 голосов
/ 10 сентября 2010

Что означает внешний API (рассматриваете ли вы WINAPI как внешний API?).Если Windows API не является внешним API, то мы можем использовать DumpBin.exe для отображения всех внешних API, используемых в двоичном файле.если вы хотите увидеть зависимую dll / exe исполняемого файла, вы можете использовать Depend.exe.

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