Jawaban:
Cara lain untuk melihat apa yang dimuat dalam suatu proses adalah dengan melihat /proc/PID/mapsfile. Ini menunjukkan semua yang dipetakan ke dalam ruang alamat Anda, termasuk objek bersama yang dipetakan.
sudo grep libcairo.so /proc/*/maps
adalah cara yang bagus untuk menjelajahi semua yang /proc/PID/maps disebutkan oleh Rich sekaligus. Output sampel:
/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
Selanjutnya awkdan bash-fu dapat memperbaiki output lebih lanjut.
Metode ini juga menunjukkan perpustakaan dibuka dengan dlopen, diuji dengan pengaturan minimal ini diretas dengan sleep(1000)Ubuntu 18.04.
Anda dapat menjalankan perintah berikutnya dengan root dan melihat daftar lengkap,
cat /proc/*/maps | awk '{print $6;}' | grep '\.so' | sort | uniq
Ini untuk pengguna yang tidak memiliki lsof.
lsoftidak memiliki fungsionalitas yang dibutuhkan.