Câu trả lời:
Một cách khác để xem những gì được tải trong một quy trình là bằng cách xem /proc/PID/maps
tệp. Điều này cho thấy mọi thứ được ánh xạ vào không gian địa chỉ của bạn, bao gồm các đối tượng được chia sẻ được ánh xạ.
sudo grep libcairo.so /proc/*/maps
là một cách hay để khám phá tất cả /proc/PID/maps
được đề cập bởi Rich cùng một lúc. Đầu ra mẫu:
/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
Hơn nữa awk
và bash-fu có thể tinh chỉnh đầu ra hơn nữa.
Phương pháp này cũng cho thấy các thư viện được mở bằng dlopen
, được thử nghiệm với thiết lập tối thiểu này đã bị hack với sleep(1000)
Ubuntu 18.04.
lsof
không có chức năng cần thiết.