Подтвердить что ты не робот

Есть ли встроенный просмотрщик функций экспорта DLL?

Есть ли бесплатный просмотрщик функций внешних DLL файлов, который показывает имя функции и список их параметров?

4b9b3361

Ответ 1

вы можете использовать Dependency Walker для просмотра имени функции. вы можете видеть параметры функции только в том случае, если они были украшены. прочитайте следующее из FAQ:

Как просмотреть параметры и возвращаемые типы функции? Для большинства функций эта информация просто отсутствует в модуле. Формат файла модуля Windows предоставляет только одну текстовую строку для идентификации каждой функции. Не существует структурированного способа перечислить количество параметров, типы параметров или тип возвращаемого значения. Однако некоторые языки выполняют что-то, называемое функцией "украшение" или "искажение", которое является процессом кодирования информации в текстовую строку. Например, такая функция, как int Foo (int, int), закодированная простым декорированием, может быть экспортирована как _Foo @8. Значение 8 относится к числу байтов, используемых параметрами. Если используется декорация С++, функция будет экспортироваться как Foo @@YGHHH @Z, которая может быть напрямую декодирована обратно в исходный прототип функции: int Foo (int, int). Dependency Walker поддерживает С++ unecoration с помощью команды Undecorate С++ Functions.

Ответ 2

dumpbin из командной строки Visual Studio:

dumpbin /exports csp.dll

Пример вывода:

Microsoft (R) COFF/PE Dumper Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file csp.dll

File Type: DLL

  Section contains the following exports for 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

  Summary

        1000 .data
        1000 .rdata
        1000 .reloc
        1000 .rsrc
        1000 .text

Ответ 3

DLL Export Viewer от NirSoft можно использовать для отображения экспортированных функций в DLL.

Эта утилита отображает список всех экспортируемых функций и их адреса виртуальной памяти для указанных DLL файлов. Вы можете легко скопируйте адрес памяти желаемой функции, вставьте ее в свой отладчик и установить точку останова для этого адреса памяти. Когда это функция вызывается, отладчик остановится в начале этого функция.

enter image description here

Ответ 4

Если у вас нет исходного кода и документации API, машинный код - это все, что вам нужно, вам нужно разобрать библиотеку dll, используя что-то вроде IDA Pro, другой вариант - использовать пробную версию PE Explorer.

PE Explorer предоставляет дизассемблер. Есть только один способ выяснить параметры: запустить дизассемблер и прочитать выходные данные дизассемблирования. К сожалению, эта задача обратного проектирования интерфейса не может быть автоматизирована.

PE Explorer поставляется в комплекте с описаниями 39 различных библиотек, включая основные библиотеки операционной системы Windows® (например, KERNEL32, GDI32, USER32, SHELL32, WSOCK32), ключевые графические библиотеки (DDRAW, OPENGL32) и многое другое.

alt text
(источник: heaventools.com)