Ich dachte, objdump -T arbeitete hauptsächlich an gemeinsam genutzten Bibliotheken ...
Jim Mcnamara
na ja ... nicht wirklich, wenn ich es tue: objdump -t / bin / ls gibt es zurück: "SYMBOL TABLE: no symbols", mit -T (das DYNAMIC SYMBOL TABLE auflistet) werden viele Daten ausgegeben, wie: "00000000 DF UND 00000000 GLIBC_2.0 strchr "
Mr Shunz
5
Die Ausgabe von objdump ist zu diesem Zweck etwas zu umfangreich und erfordert ein gutes Parsing, um die tatsächlichen Importe zu ermitteln.
Das listet nur die benötigten Bibliotheken auf. Die Frage ist, welche Symbole aus diesen Bibliotheken importiert werden.
Alcaro
1
Zusammen mit den anderen hier geposteten Antworten möchte ich noch eine vorschlagen. Die gedruckten Inhalte sind eine Funktion des Dateiformats, in dem sich ELF gut zur Lösung dieses Problems eignet.
objdump -p /path/to/binary | grep NEEDED
Das grep extrahiert einfach den Inhalt des Dynamic Section, aber es ist das Format der objdump -pAusgabe, das dies zu einer einfachen Lösung macht.
Antworten:
Versuchen Sie objdump -T 'ELF-Datei'
quelle
Die Ausgabe von objdump ist zu diesem Zweck etwas zu umfangreich und erfordert ein gutes Parsing, um die tatsächlichen Importe zu ermitteln.
Ich lese mich lieber für diesen Zweck:
Wie Sie sehen, sind die benötigten Bibliotheken mit "NEEDED" gekennzeichnet.
quelle
objdump -p /path/to/binary | grep NEEDED
.Ich ziehe
readelf
.readelf -s <file>
quelle
Zusammen mit den anderen hier geposteten Antworten möchte ich noch eine vorschlagen. Die gedruckten Inhalte sind eine Funktion des Dateiformats, in dem sich ELF gut zur Lösung dieses Problems eignet.
objdump -p /path/to/binary | grep NEEDED
Das grep extrahiert einfach den Inhalt des
Dynamic Section
, aber es ist das Format derobjdump -p
Ausgabe, das dies zu einer einfachen Lösung macht.quelle