ldd (Unix)

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

ldd (zkratka z anglického List Dynamic Dependenciesvypiš dynamické závislosti) je programátorský nástroj na systémech unixového typu, který pro zadaný spustitelný soubor nebo zadanou knihovnu vypíše všechny závislosti na dynamických knihovnách.[1]

Jedná se o shellový skript kompatibilní s Bournovým shellem a jeho první verze pochází z roku 1996.

Používám je například při potřebě zkopírovat závislosti programu do chrootu.[2]

Bezpečnost a alternativy[editovat | editovat zdroj]

Protože skript ldd v rámci svého běhu zkoumaný program zkouší, neměl by být používán na programy nedůvěryhodného původu.[3] Přímo manuálová stránka nabízí pro zkoumání potenciálně nebezpečných programů alternativu v podobě volání programů objdump a grep:[4]

user@home ~/ $ objdump -p /cesta/program | grep NEEDED

Příklad užití[editovat | editovat zdroj]

user@home ~/ $ ldd /usr/bin/mp3blaster
        linux-vdso.so.1 =>  (0x00007fff8fdff000)
        libsidplay.so.1 => /usr/lib/libsidplay.so.1 (0x00007f4ea98ec000)
        libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x00007f4ea96e4000)
        libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f4ea94b6000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x00007f4ea9273000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f4ea9056000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f4ea8d41000)
        libm.so.6 => /lib/libm.so.6 (0x00007f4ea8abe000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f4ea88a7000)
        libc.so.6 => /lib/libc.so.6 (0x00007f4ea8523000)
        libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f4ea831c000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f4ea8118000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f4ea9b59000)
user@home ~/ $ ldd /usr/lib/i386-linux-gnu/libstdc++.so.6.0.20
        linux-gate.so.1 (0xb7733000)
        libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb75da000)
        libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb742f000)
        /lib/ld-linux.so.2 (0xb7734000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7411000)

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku ldd (Unix) na anglické Wikipedii.

  1. BRABEC, Stanislav. Kompilujeme ze zdrojového kódu - knihovny. Root.cz [online]. 2002-08-19. Dostupné online. ISSN 1212-8309. 
  2. ŠTRAUCH, Adam. Jailkit: snadné chrootování služeb. Root.cz [online]. 2008-11-28. Dostupné online. ISSN 1212-8309. 
  3. ldd arbitrary code execution. Catonmat [online]. Dostupné online. (anglicky) 
  4. ldd(1) [online]. Dostupné online. (anglicky) 

Externí odkazy[editovat | editovat zdroj]