Jak wyświetlić funkcje DLL?


Odpowiedzi:


76

W przypadku kodu natywnego prawdopodobnie najlepiej jest użyć Dependency Walker . Możliwe jest również użycie narzędzia wiersza poleceń dumpbin , które jest dostarczane z programem Visual Studio.


1
W nowszych wersjach VS wypróbuj DumpBin jako narzędzie zewnętrzne .
Laurie Stearn

1
W Wikipedii jest artykuł o Dependency Walker. Najwyraźniej program stał się przestarzały i nie działa z niektórymi nowszymi funkcjami systemu Windows, ale dostępny jest zamiennik: github.com/lucasg/Dependencies
user1324109

53

Skorzystaj z bezpłatnej przeglądarki DLL Export Viewer , która jest bardzo łatwa w użyciu.


8
@sumit czy możesz być bardziej szczegółowy? to narzędzie działa dla mnie przez lata.
Ken D

6
Właściwie to narzędzie działa ładnie, prosto i prosto, dokładnie to, czego potrzebowałem.
informatik01

6
To świetne narzędzie do generowania listy metod / funkcji, ale nie pokazuje parametrów metod (ani ich typów).
bvdb

1
Bardzo dobrze jest mieć coś, co jest małe i kompaktowe, a nie jakiś nadęty produkt, jak zwykle są oficjalne produkty MS.
ワ イ き ん ぐ

40

Możesz wypróbować przeglądarkę obiektów w programie Visual Studio.

Wybierz opcję Edytuj zestaw komponentów niestandardowych . Stamtąd możesz wybierać spośród różnych bibliotek .NET, COM lub projektów lub po prostu zaimportować zewnętrzne biblioteki DLL za pomocą funkcji Przeglądaj.


17
Program Visual Studio wyświetla komunikat „Nie można przeglądać wybranego składnika” podczas korzystania z funkcji Przeglądaj i wybierając bibliotekę DLL :( - msdn.microsoft.com/query/…
Xdg

6
przeglądarka obiektów została przeniesiona do View. I tak, to nie działa (dlaczego miałby to zrobić, to microsoft)
phil294

1
Bardziej sprzedawca niż problem SM. Prawdopodobnie nie ma typelib w dll. Zobacz: stackoverflow.com/a/13903040/1614903
Holger Böhnke

@ HolgerBöhnke no typelib in userdll32 albo
Kimmax

2
@Kimmax Tak, ale user32.dll jest natywną biblioteką DLL systemu Windows, a nie serwerem COM. Tylko serwery COM (np. Biblioteki DLL COM, kontrolki ActiveX, * .ocx ...) mogą mieć typelibs, jeśli zostały wkompilowane w pierwszej kolejności. W przypadku natywnych (= obiektów innych niż COM) bibliotek DLL niektóre z innych wymienionych tutaj narzędzi (dumpbin et. Al.) Mogą działać. Oznacza to, że jeśli biblioteka DLL eksportuje swoje funkcje według nazwy, a nie tylko według liczby porządkowej.
Holger Böhnke

29

Użyj dumpbinwiersza poleceń .

  • dumpbin /IMPORTS <path-to-file> powinien udostępniać funkcję zaimportowaną do tej biblioteki DLL.
  • dumpbin /EXPORTS <path-to-file> powinien udostępniać funkcje, które eksportuje.

10

W przypadku bibliotek .NET DLL można użyć ildasm


Ponieważ ildasm jest produktem firmy Microsoft i jest instalowany domyślnie na komputerze PC, jeśli masz zainstalowane oprogramowanie Visual Studio, uważam, że jest to najlepsza opcja, ma również interfejs użytkownika, więc nie musisz używać wiersza poleceń. Dzięki
Mehrdad Babaki

Można go znaleźć: C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ <WERSJA> \ bin
f4d0


6

Nie mówiąc nam, z jakiego języka pochodzi ten plik dll / assembler, możemy tylko zgadywać.

A co powiesz na .NET Reflector


2
Więc to powinien być twój facet.
Adriaan Stander

1
Odbłyśnik .net był kiedyś darmowy, ale teraz jest produktem komercyjnym. Dla .net dll "JustDecompile" jest darmową alternatywą.
bvdb

czy dekompilator mówi tylko, jakie funkcje są dostępne. czy widzimy też ich implementację?
vipin8169

2

Jeśli biblioteka DLL jest napisana w jednym z języków .NET i chcesz wyświetlić tylko funkcje, w projekcie znajduje się odwołanie do tej biblioteki DLL.

Następnie dwukrotnie kliknij bibliotekę DLL w folderze odniesień, a zobaczysz jakie funkcje posiada w oknie OBJECT EXPLORER

Jeśli chcesz wyświetlić kod źródłowy tego pliku DLL, możesz użyć aplikacji dekompilującej, takiej jak reflektor .NET. mam nadzieję, że to ci pomoże.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.