lddsafe — безопасный аналог ldd
Узнав о уязвимости ldd, опубликованной несколько дней назад тут (новость на ЛОРе, в толксах), линуксойд rg3 написал небольшой скрипт lddsave, выводящий ту же информацию, что и 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
Два важных предостережения:
для работы необходим 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
Ещё новости по теме:
18:20