Есть ли собственный просмотрщик функций экспорта DLL?
есть ли бесплатный собственный просмотрщик функций экспорта DLL Windows, который показывает имя функции и список их параметров?
5 ответов:
можно использовать Dependency Walker для просмотра имени функции. вы можете видеть параметры функции, только если она украшена. прочитайте следующее Из FAQ:
как просмотреть параметры и возвращаемые типы функции? Для большинства функций эта информация просто отсутствует в модуле. Формат файла модуля Windows предоставляет только одну текстовую строку для идентификации каждой функции. Нет структурированного списка количество параметров, типы параметров или возвращаемого типа. Однако некоторые языки выполняют так называемую функцию "украшения" или "искажения", которая представляет собой процесс кодирования информации в текстовую строку. Например, такая функция, как int Foo(int, int), закодированная с помощью простого украшения, может быть экспортирована как _Foo@8. 8 относится к числу байтов, используемых параметрами. Если используется украшение C++, функция будет экспортирована как ?Фу@@YGHHH@Z, которая может быть непосредственно декодирован обратно в оригинальный прототип функции: int Foo (int, int). Dependency Walker поддерживает C++ undecoration с помощью команды Undecorate C++ Functions.
dumpbin из командной строки Visual Studio:
C:\Users\Andrew\src2011\cryptography\cspsdk>dumpbin / экспорт csp.dll
Microsoft (R) COFF/PE Dumper Version 10.00.30319.01 Авторское Право (C) Корпорация Майкрософт. Все права защищены.
дамп файла csp.dll
тип файла: DLL
раздел содержит следующие экспортные данные для CSP.dll
00000000 characteristics 3B1D0B77 time date stamp Tue Jun 05 12:40:23 2001 0.00 version 1 ordinal base 25 number of functions 25 number of names ordinal hint RVA name 1 0 00001470 CPAcquireContext 2 1 000014B0 CPCreateHash 3 2 00001520 CPDecrypt 4 3 000014B0 CPDeriveKey 5 4 00001590 CPDestroyHash 6 5 00001590 CPDestroyKey 7 6 00001560 CPEncrypt 8 7 00001520 CPExportKey 9 8 00001490 CPGenKey 10 9 000015B0 CPGenRandom 11 A 000014D0 CPGetHashParam 12 B 000014D0 CPGetKeyParam 13 C 00001500 CPGetProvParam 14 D 000015C0 CPGetUserKey 15 E 00001580 CPHashData 16 F 000014F0 CPHashSessionKey 17 10 00001540 CPImportKey 18 11 00001590 CPReleaseContext 19 12 00001580 CPSetHashParam 20 13 00001580 CPSetKeyParam 21 14 000014F0 CPSetProvParam 22 15 00001520 CPSignHash 23 16 000015A0 CPVerifySignature 24 17 00001060 DllRegisterServer 25 18 00001000 DllUnregisterServer
резюме
1000 .data 1000 .rdata 1000 .reloc 1000 .rsrc 1000 .text
DLL Export Viewer by NirSoft может использоваться для отображения экспортированных функций в DLL.
эта утилита отображает список всех экспортируемых функций и их адреса виртуальной памяти для указанных DLL-файлов. Вы можете легко скопируйте адрес памяти нужной функции, вставьте его в свой отладчика и установить контрольную точку для этого адреса памяти. Когда это функция вызывается, отладчик остановится в начале этого функция.
Если у вас нет исходного кода и документации API, машинный код-это все, что есть, вам нужно разобрать библиотеку dll, используя что-то вроде IDA Pro , другой вариант-использовать пробную версию PE Explorer.
PE Explorer предоставляет дизассемблер. Существует только один способ выяснить параметры: запустите дизассемблер и прочитайте вывод дизассемблера. К сожалению, эта задача обратного проектирования интерфейса не может быть автоматизированный.
PE Explorer поставляется в комплекте с описаниями для 39 различных библиотек, включая основные библиотеки операционной системы Windows® (например. KERNEL32, GDI32, USER32, SHELL32, WSOCK32), ключевые графические библиотеки (DDRAW, OPENGL32) и многое другое.
Не уверен в его списке параметров, но следующий плагин TotalCommander очень полезно.