Коришћење наредбе "лдд" на Линуку

Лдд команда се може користити да вам покаже дијељене библиотеке потребне за било који програм.

Ово је корисно за рад када постоји недостатак зависности и може се користити за попис несталих функција и објеката.

лдд Цомманд Синтак

Ово је исправна синтакса када користите лдд команду:

лдд [ОПТИОН] ... ФИЛЕ ...

Овде су доступни лдд командни прекидачи који се могу убацити у мјесто [ОПТИОН] у горњој команди:

--хелп одштампајте ову помоћ и изађите - информације о верзији за штампу и излаз -д, - дата релокације процеса података -р, --фунцтион-релоцс процесних података и пресељења функција -у, - неупотребљене штампане неупотребљене директне зависности -в, --верите све информације

Како користити лдд команду

Можете користити следећу наредбу да бисте добили више информација из било које команде лдд:

лдд -в / патх / то / програм / изврши

Излаз приказује информације о верзији, као и путеве и адресе у дељеним библиотекама, овако:

лдд либсхаред.со линук -вдсо.со.1 => (0к00007ффф26ац8000) либц.со.6 => /либ/либц.со.6 0к00007фф1дф55а000) /либ64/лд-линук-к86-64.со.2 (0к00007фф1дфафе000)

Ако СО датотека уопште не постоји, можете пронаћи недостајуће библиотеке помоћу следеће наредбе:

лдд -д пут / до / програм

Излаз је сличан следећем:

линук-вдсо.со.1 (0к00007ффц2936б000) /хоме/гари/демо/гарилиб.со => није пронађен либц.со.6 => уср / либ / либц.со.6 (0к00007фд0ц6259000) / либ64 / лд-линук-к86 -64.со.2 (0к00007фд0ц65фд000)

Важно: никада не покрећите лдд команду против непоузданог програма, с обзиром да је команда можда заправо извршила. Ово је сигурнија алтернатива која показује само директне зависности, а не целокупно зависно дрво: објдумп -п / патх / то / програм | греп НЕЕДЕД .

Како пронаћи пут до апликације

Морате да обезбедите пуну путању до неке апликације ако желите да пронађете његове зависности са лдд-ом, што можете урадити на више начина.

На пример, овако ћете пронаћи пут до Фирефока :

пронађи / -наме фирефок

Проблем са наредбом за проналазак је , међутим, да ће не само пописати извршну датотеку, већ свугдје гдје се Фирефок налази, овако:

Овај приступ је мало прекомјеран и можда ћете морати да користите команду судо да бисте подигли своје привилегије, у супротном ћете вероватно добити многе грешке које сте одбили.

Уместо тога, много је лакше користити команду вхереис да би пронашла путању апликације:

вхереис фирефок

Овог пута излаз може изгледати овако:

/ уср / бин / фирефок

/ етц / фирефок

/ уср / либ / фирефок

Све што сада треба да урадите да пронађете дељене библиотеке за Фирефок је укуцати следећу наредбу:

лдд / уср / бин / фирефок

Излаз из наредбе биће нешто овако:

линук-вдсо.со.1 (0к00007фффф8364000)
либптхреад.со.0 => /уср/либ/либптхреад.со.0 (0к00007феб9917а000)
либдл.со.2 => /уср/либ/либдл.со.2 (0к00007феб98ф76000)
либстдц ++. со.6 => /уср/либ/либстдц++.со.6 (0к00007феб98бф4000)
либм.со.6 => /уср/либ/либм.со.6 (0к00007феб988ф6000)
либгцц_с.со.1 => /уср/либ/либгцц_с.со.1 (0к00007феб986е0000)
либц.со.6 => /уср/либ/либц.со.6 (0к00007феб9833ц000)
/либ64/лд-линук-к86-64.со.2 (0к00007феб99397000)

Линук-вдсо.со.1 је име библиотеке, а хекс број је адреса на којој ће се библиотека учитати у меморији.

На многим редовима ћете приметити да симбол => следи пут. Ово је пут ка физичком бинарном; хек број је адреса у којој ће се библиотека учитати.