GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Finden Sie Bibliotheken, gegen die eine Binärdatei gelinkt wurde

Tryldd binary-exec

Beispiel:

~$ ldd /bin/bash
    linux-gate.so.1 =>  (0x00606000)
    libncurses.so.5 => /lib/libncurses.so.5 (0x00943000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00c5d000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x003e9000)
    /lib/ld-linux.so.2 (0x00a41000)

Um zu finden, was es direkt braucht:

readelf -d APP | grep NEEDED

ldd wie an anderer Stelle erwähnt, werden alle direkten und indirekten Bibliotheken angezeigt - alles, was zur Laufzeit benötigt wird. Dies ist möglicherweise keine vollständige Liste, da Sie Dinge mit dlopen() dynamisch öffnen können, aber dies sollte in 99% der Fälle funktionieren.

ld und libtool werden zum Zeitpunkt des Kompilierens/Linkens verwendet. Sie sind nicht mehr nützlich, sobald Sie eine App haben.

BEARBEITEN Ich kann durch spätere Antworten sehen, dass Sie nach OSX gefragt haben, aber ich möchte meine Antwort zu Linux-Tools ergänzen:

Eines habe ich vor einiger Zeit vergessen zu erwähnen; Sie haben nach Versionen gefragt. Weder ldd noch readelf wird die Frage "welche Version" beantworten. Sie werden Ihnen den Dateinamen der Bibliothek mitteilen, nach der Sie suchen, und die Namenskonvention enthält möglicherweise einige Versionsinformationen, aber nichts erzwingt dies. Symbole können versioniert sein, und Sie müssten mit nm viel über eine noch niedrigere Ebene sagen um diese zu sehen,


Eine andere Möglichkeit wäre die Verwendung von objdump.

objdump -x "binär" | grep ERFORDERLICH

Dies zeigt alle benötigten Abhängigkeiten nur für diese Binärdatei. Sehr nützlich.


Linux
  1. Die Linux-Geschichte meiner Familie

  2. So finden Sie heraus, welche ausführbaren Dateien der dynamischen Bibliotheken beim Ausführen geladen werden

  3. Linux – Wie testet man, ob eine Linux-Binärdatei als positionsunabhängiger Code kompiliert wurde?

  4. Linux 3D-Grafikbibliotheken?

  5. Verwenden (statisch gelinkte) DLLs einen anderen Heap als das Hauptprogramm?

5 Möglichkeiten, eine Beschreibung und einen Speicherort eines „Binärbefehls“ im Dateisystem zu finden

So finden Sie heraus, wann die Spfile auf einem Linux-Server erstellt wurde

Binäre Kompatibilität der Linux-Distribution

So finden Sie heraus, welche Datei sich in einem bestimmten Sektor befindet

Wie finde ich heraus, wie lange es her ist, dass ein Linux-System installiert wurde?

Linux-Befehl zum Suchen von Zeichenfolgen in Binär- oder Nicht-ASCII-Dateien