Ich habe zwei verwandte Fragen:
- Wie kann ich sehen, ob derzeit eine gemeinsam genutzte Bibliothek geladen ist? (dh systemweit, prozessunabhängig)
- Wie kann ich alle gemeinsam genutzten Bibliotheken anzeigen, die von einem Prozess geladen wurden?
Du kannst beides mit machen lsof
. Um zu sehen, welche Prozesse eine Bibliothek geöffnet oder zugeordnet haben, gehen Sie wie folgt vor:
lsof /path/to/lib.so
und um zu sehen, welche Dateien (einschließlich gemeinsam genutzter Bibliotheken) ein Prozess geöffnet und / oder zugeordnet hat, gehen Sie wie folgt vor:
lsof -p <pid>
Eine andere Möglichkeit, um zu sehen, was in einem Prozess geladen ist, besteht darin, sich die /proc/PID/maps
Datei anzusehen. Dies zeigt alles an, was Ihrem Adressraum zugeordnet ist, einschließlich freigegebener Objekte, die in zugeordnet sind.
lsof
nicht die benötigte Funktionalität hatte.ist eine schöne Möglichkeit, alle
/proc/PID/maps
von Rich erwähnten auf einmal zu erkunden . Beispielausgabe:Further
awk
und bash-fu können die Ausgabe weiter verfeinern.Diese Methode zeigt auch Bibliotheken an
dlopen
, die mit diesem minimalen Setup geöffnet wurden , das mitsleep(1000)
Ubuntu 18.04 gehackt wurde .quelle
Sie können den nächsten Befehl von root ausführen und eine vollständige Liste anzeigen.
Dies ist für Benutzer, die nicht über lsof verfügen.
quelle