Antworten:
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.
sudo grep libcairo.so /proc/*/maps
ist eine schöne Möglichkeit, alle /proc/PID/maps
von Rich erwähnten auf einmal zu erkunden . Beispielausgabe:
/proc/8390/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
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 mit sleep(1000)
Ubuntu 18.04 gehackt wurde .
Sie können den nächsten Befehl von root ausführen und eine vollständige Liste anzeigen.
cat /proc/*/maps | awk '{print $6;}' | grep '\.so' | sort | uniq
Dies ist für Benutzer, die nicht über lsof verfügen.
lsof
nicht die benötigte Funktionalität hatte.