Czy istnieje jakaś natywna przeglądarka funkcji eksportu DLL?

Czy jest jakaś Darmowa, natywna przeglądarka funkcji eksportu DLL systemu Windows, która pokazuje nazwę funkcji i listę ich parametrów?

Author: Cristian Ciupitu, 2009-10-10

5 answers

Możesz użyć Dependency Walker aby wyświetlić nazwę funkcji. parametry funkcji można zobaczyć tylko wtedy, gdy jest ozdobiona. przeczytaj poniższe FAQ:

Jak wyświetlić typy parametrów i zwracanych funkcji? W przypadku większości funkcji informacje te po prostu nie są obecne w module. Format pliku modułu systemu Windows zapewnia tylko jeden ciąg tekstowy do identyfikacji każdej funkcji. Nie ma uporządkowanego sposobu wypisywania liczby parametrów, typy parametrów lub typ powrotu. Jednak niektóre języki robią coś, co nazywa się funkcją "dekoracji" lub "mangling" , która jest procesem kodowania informacji w ciągu tekstowym. Na przykład, funkcja taka jak int Foo(int, int) zakodowana z prostą dekoracją może być eksportowana jako _Foo@8. 8 odnosi się do liczby bajtów używanych przez parametry. Jeśli c++ decoration jest używany, funkcja zostanie wyeksportowana jako ?Foo@ @ YGHHH@Z, które można bezpośrednio dekodować z powrotem do oryginału funkcji prototype: int Foo (int, int). Dependency Walker obsługuje undecoration C++ za pomocą polecenia Undecorate C++ Functions.

 61
Author: Moshe Levi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-10 18:12:21

Dumpbin z wiersza poleceń Visual Studio:

C:\Users\Andrew\src2011\cryptography\cspsdk>dumpbin / exports csp.dll

Microsoft (R) COFF/PE Dumper Version 10.00.30319.01 Copyright (C) Microsoft Corporation. Wszelkie prawa zastrzeżone.

Zrzut pliku csp.dll

Typ pliku: DLL

Sekcja zawiera następujący eksport DLA 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

Podsumowanie

    1000 .data
    1000 .rdata
    1000 .reloc
    1000 .rsrc
    1000 .text
 68
Author: AndrewDover,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-09 12:27:38

DLL Export Viewer by NirSoft może być używany do wyświetlania eksportowanych funkcji w DLL.

To narzędzie wyświetla listę wszystkich wyeksportowanych funkcji i ich adresy pamięci wirtualnej dla określonych plików DLL. Możesz łatwo skopiuj adres pamięci żądanej funkcji, wklej ją do swojego debuggera i ustawić punkt przerwania dla tego adresu pamięci. Kiedy to funkcja jest wywoływana, debugger zatrzyma się na początku tego funkcja.

Tutaj wpisz opis obrazka

 18
Author: Magnus Lindhe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-30 09:21:51

Jeśli nie posiadasz kodu źródłowego i dokumentacji API, kod maszynowy jest wszystkim, musisz zdemontować bibliotekę dll używając czegoś w rodzaju IDA Pro , inną opcją jest użycie wersji próbnej PE Explorer.

PE Explorer zapewnia Disassembler. Jest tylko jeden sposób na określenie parametrów: Uruchom demontaż i odczytaj wyjście demontażu. Niestety, to zadanie inżynierii odwrotnej interfejsu nie może być zautomatyzowane.

PE Eksplorator jest dostarczany z opisami dla 39 różnych bibliotek, w tym podstawowych bibliotek systemu operacyjnego Windows® (np. KERNEL32, GDI32, USER32, SHELL32, WSOCK32), kluczowe biblioteki graficzne (DDRAW, OPENGL32) i inne.

Alt text http://www.heaventools.com/img/tour2-2.gif

 8
Author: RRUZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-10 18:39:51

Nie jestem pewien listy jego parametrów, ale following TotalCommander plugin jest bardzo przydatny.

 2
Author: Restuta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-10 18:05:41