Wie kann ich herausfinden, welche DLLs geladen werden, wenn ich eine ausführbare Windows-Datei habe?
Ich spreche nur davon, welche statisch geladen werden, nicht welche, die mit etwas wie LoadLibrary dynamisch geladen werden könnten.
Wie kann ich herausfinden, welche DLLs geladen werden, wenn ich eine ausführbare Windows-Datei habe?
Ich spreche nur davon, welche statisch geladen werden, nicht welche, die mit etwas wie LoadLibrary dynamisch geladen werden könnten.
Antworten:
Es gibt Dienstprogramme, die dies für Sie erledigen.
In der Vergangenheit habe ich das MS-Tool (abhängige.exe) verwendet, das mit (glaube ich) VB geliefert wurde:
https://msdn.microsoft.com/en-us/library/8kche8ah.aspx
und das gibt es auch:
http://dependencywalker.com/
und wahrscheinlich auch andere.
dumpbin ist ein Tool, das mit VC ++ geliefert wird.
So sehen Sie, welche DLLs ein Programm importiert:
Dump of file whatever.exe File Type: EXECUTABLE IMAGE Image has the following dependencies: AIOUSB.DLL sqlite3.dll wxmsw293u_core_vc_custom.dll wxbase293u_vc_custom.dll KERNEL32.dll ole32.dll OLEAUT32.dll MSVCP90.dll MSVCR90.dll
Verwenden Sie, um zu sehen, welche Funktionen (und DLLs) importiert werden
C:\> dumpbin /imports whatever.exe
.exe
nicht DLLs geladen wurden, von denen die ausführbare Datei indirekt abhängt.
Öffnen Sie die Eingabeaufforderung und geben Sie den folgenden Befehl ein
Aufgabenliste / m / fi "imagename eq netbeans.exe"
Geben Sie stattdessen netbeans.exe ein, unabhängig von Ihrem Exe-Dateinamen.
Gehen Sie einfach zur Eingabeaufforderung und geben tasklist /m
Sie ein. Sie sehen die Liste der DLL-Dateien, die von einem bestimmten Programm verwendet werden.
Mit Dependency Walker können Sie bestimmen, welche DLL geladen wird.
Dependency Walker
Versuchen Sie, DLLs und ihre hierarchischen Abhängigkeiten zu finden.
progfr ist einfach und nützlich: [ http://members.fortunecity.com/michaelmoser/tip11.htm]
Es gibt ein praktisches Tool namens NDepend, mit dem Sie alle DLL-Abhängigkeiten erhalten.
NDepend
ist ein statisches Analysetool für .NET-verwalteten Code . Es funktioniert also nur für .NET-Anwendungen.
Der Prozess-Explorer wird mit SysInternals Suite https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite geliefert
Vorteile: Ermöglicht das Erkunden des bereits ausgeführten Prozesses (ich habe keine Möglichkeit gefunden, den Abhängigkeits-Walker an den vorhandenen Prozess anzuhängen).