LINUX.ORG.RU

lddsafe — безопасный аналог ldd

 , ,


0

0

Узнав о уязвимости ldd, опубликованной несколько дней назад тут (новость на ЛОРе, в толксах), линуксоид rg3 написал небольшой скрипт lddsafe, выводящий ту же информацию, что и ldd. Скрипт использует objdump и безопасен, так как не запускает на исполнение проверяемую программу.

Два важных предостережения:

  • для работы необходим bash версии 4.0 или поздней (для быстрого выполнения в скрипте используются ассоциативные массивы, доступные только в bash 4);
  • скрипт проверен только в Slackware Linux (однако багрепорты и патчи принимаются, если он не работает должным образом в других дистрибутивах).

В будущем планируется переписать скрипт на Perl, чтобы он не зависел от версии bash 4.0.

Пример выполнения скрипта:

$ lddsafe /usr/bin/xcalc
        libXaw.so.7 => /usr/lib/libXaw.so.7
        libXmu.so.6 => /usr/lib/libXmu.so.6
        libXt.so.6 => /usr/lib/libXt.so.6
        libSM.so.6 => /usr/lib/libSM.so.6
        libICE.so.6 => /usr/lib/libICE.so.6
        libc.so.6 => /lib/libc.so.6
        ld-linux.so.2 => /lib/ld-linux.so.2
        libuuid.so.1 => /lib/libuuid.so.1
        libX11.so.6 => /usr/lib/libX11.so.6
        libxcb.so.1 => /usr/lib/libxcb.so.1
        libXau.so.6 => /usr/lib/libXau.so.6
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6
        libdl.so.2 => /lib/libdl.so.2
        libXext.so.6 => /usr/lib/libXext.so.6
        libXpm.so.4 => /usr/lib/libXpm.so.4
        libm.so.6 => /lib/libm.so.6

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: lddsafe — безопасный аналог ldd от scaldov

lddsafe — безопасный аналог ldd

странно что автор сразу на перле не написал. ведь перл, в отличие от баша,установлен практически любом линуксе. ну кроме встраеваемых. да и то не всех :)

Cosmicman ★★ ()
Ответ на: lddsafe — безопасный аналог ldd от anonymous

Re: lddsafe — безопасный аналог ldd

> ~$ strings /bin/ls | grep '\.so\.'
> /lib/ld-linux.so.2

> librt.so.1

> libselinux.so.1

> libacl.so.1

> libc.so.6


dhcppc1:/bin> objdump -x /bin/ls | grep NEEDED
NEEDED librt.so.1
NEEDED libacl.so.1
NEEDED libc.so.6

Так что аккуратнее, коллега!!!

Orlusha ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.