LINUX.ORG.RU
 
aydar

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

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

ЗАСТАВЬ КОМПЬЮТЕР ПОЛИВАТЬ ОГОРОД

автоматизация своими руками: электроприборы под контролем компьютера
beware of programmers who carry screwdrivers!
http://www.unicontrollers.com/products/unc01x

[#] Ответ на: lddsafe — безопасный аналог ldd от scaldov 02.11.2009 17:39:44  
Cosmicman

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

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

** ()
[#] Ответ на: lddsafe — безопасный аналог ldd от anonymous 02.11.2009 7:57:44  
Orlusha

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

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

** ()