Ve paylaşılan nesne bağımlılıkları düşünün /bin/bash
içerir, /lib64/ld-linux-x86-64.so.2
(dinamik bağlayıcı / yükleyici):
ldd /bin/bash
linux-vdso.so.1 (0x00007fffd0887000)
libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f57a04e3000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f57a04de000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f57a031d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f57a0652000)
İnceleme /lib64/ld-linux-x86-64.so.2
, bunun aşağıdakiler için bir sembolik olduğunu gösterir /lib/x86_64-linux-gnu/ld-2.28.so
:
ls -la /lib64/ld-linux-x86-64.so.2
lrwxrwxrwx 1 root root 32 May 1 19:24 /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.28.so
Ayrıca, file
raporlar /lib/x86_64-linux-gnu/ld-2.28.so
kendisine dinamik olarak bağlanır:
file -L /lib64/ld-linux-x86-64.so.2
/lib64/ld-linux-x86-64.so.2: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=f25dfd7b95be4ba386fd71080accae8c0732b711, stripped
Bilmek isterdim:
- Dinamik olarak bağlayıcı / yükleyicinin (
/lib64/ld-linux-x86-64.so.2
) kendisi dinamik olarak nasıl bağlanabilir? Çalışma zamanında kendini bağlar mı? /lib/x86_64-linux-gnu/ld-2.28.so
a.out ikili dosyalarını (man ld.so
) işlemek için belgelenmiştir , ancak/bin/bash
ELF yürütülebilir mi?
Ld.so programı, uzun zaman önce kullanılan bir format olan a.out ikili dosyalarını işler; ld-linux.so * (libc5 için /lib/ld-linux.so.1, glibc2 için /lib/ld-linux.so.2) herkesin yıllardır kullandığı ELF.
/lib/x86_64-linux-gnu/ld-2.28.so
, debian 10 buster)
file
statik ikilileri nasıl tanımladığıyla ilgili yanlış yorum ve gerçeği karıştırdım ld-2.28.so
... Farklılaştırıcı PT_DYNAMIC
.