/Lib64/ld-linux-x86-64.so.2 nedir ve neden dosya yürütmek için kullanılabilir?


17

Son zamanlarda, bir dosya yürütülebilir izinlere sahip değilse, bu dosyayı kullanarak çalıştırabileceğimiz bir hile öğrendim /lib64/ld-linux-x86-64.so.2.

Örneğin, için x iznini geri yüklemek için

-rw-r--r-- 1 root root 59K Mar  1  2017 /bin/chmod

koşabiliriz

/lib64/ld-linux-x86-64.so.2 /bin/chmod +x /bin/chmod

Gerçekten nasıl yapılabileceğini bilmiyorum, normal bir şey değil, bir çeşit gizem.

Yanıtlar:


18

Dinamik bağlayıcı budur; kendi başına çalıştırırsanız, size ne yaptığını söyleyecektir:

Kullanımı: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]

Paylaşılan kütüphane yürütülebilir dosyaları için yardımcı program olan 'ld.so' u çağırdınız. Bu program genellikle dosyada yaşar /lib/ld.sove ELF paylaşılan kitaplıklarını kullanan yürütülebilir dosyalardaki özel yönergeler, sistemin program yükleyicisine yardımcı programı bu dosyadan yüklemesini bildirir. Bu yardımcı program, yürütülebilir programın ihtiyaç duyduğu paylaşılan kitaplıkları yükler, programı çalıştırmaya hazırlar ve çalıştırır. Bir ELF yürütülebilir dosyasını yüklemek ve çalıştırmak için bu yardımcı programı doğrudan komut satırından çağırabilirsiniz; bu dosyanın kendisini yürütmeye benzer, ancak çalıştırdığınız yürütülebilir dosyada belirtilen yardımcı program dosyası yerine her zaman bu yardımcı programı belirttiğiniz dosyadan kullanır. Bu çoğunlukla bakımcılar için bu yardımcı programın yeni sürümlerini test etmek için kullanılır; bu programı çalıştırmak istememişsinizdir.

Bağlayıcı, dinamik olarak bağlı programları çalıştırmak için kullanılır. Koştuğunuzda chmod, çekirdek /lib64/ld-linux-x86-64.so.2 chmodmanuel olarak yaptığınız gibi etkili bir şekilde çalışır ; ikincisi chmodçalıştırılabilir olmasa bile çalışır .

Bu konuda daha fazla ayrıntıyı, Programların nasıl çalıştırıldığı: ELF ikili dosyaları makalesinde bulabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.