Shared-Library
ELF:轉儲二進製文件導入的.so文件的路徑
我正在嘗試轉儲由 ELF 文件 (
/usr/bin/ls
)導入的共享庫的完整路徑使用
readelf --dyn-syms /usr/bin/ls
我得到庫的名稱,但不是它們在文件系統上的位置:101: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@LIBSELINUX_1.0 (4)
使用
objdump -T /usr/bin/ls
我可以獲得更多資訊(包括函式名稱):0000000000000000 DF *UND* 0000000000000000 (LIBSELINUX_1.0) getfilecon
這是有用的資訊,但我怎樣才能在磁碟上提取庫的位置?我可以執行該文件並查看它通過 . 打開的內容
lsof
,但是有什麼方法可以在不執行該文件的情況下執行此操作嗎?
這
ldd
是為了:$ ldd /bin/ls linux-vdso.so.1 (0x00007ffd67705000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f25aaab6000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f25aa8f1000) libpcre2-8.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f25aa859000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f25aa853000) /lib64/ld-linux-x86-64.so.2 (0x00007f25aab52000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f25aa831000)
這可能包含比 顯示的庫更多的內容
readelf
,因為它也將處理傳遞依賴項。