GNU/Linux >> Belajar Linux >  >> Linux

Temukan perpustakaan yang ditautkan dengan biner

Coba binary-exec

Contoh:

~$ ldd /bin/bash
    linux-gate.so.1 =>  (0x00606000)
    libncurses.so.5 => /lib/libncurses.so.5 (0x00943000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00c5d000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x003e9000)
    /lib/ld-linux.so.2 (0x00a41000)

Untuk menemukan apa yang dibutuhkan secara langsung:

readelf -d APP | grep NEEDED

ldd seperti yang disebutkan di tempat lain akan menampilkan semua lib langsung dan tidak langsung - semua yang dibutuhkan saat runtime. Ini mungkin bukan daftar lengkap, karena Anda dapat membuka sesuatu secara dinamis dengan dlopen(), tetapi ini harus bekerja 99% dari waktu.

ld dan libtool digunakan pada waktu kompilasi/tautan. Mereka tidak berguna setelah Anda memiliki aplikasi.

EDIT Saya dapat melihat jawaban selanjutnya yang Anda tanyakan tentang OSX, tetapi saya ingin menambahkan jawaban saya di alat Linux:

Satu hal yang saya lupa sebutkan, beberapa waktu yang lalu; Anda bertanya tentang versi. Baik ldd maupun readelf akan menjawab pertanyaan "versi apa". Mereka akan memberi tahu Anda nama file perpustakaan yang Anda cari, dan konvensi penamaan mungkin memiliki beberapa info versi, tetapi tidak ada yang memaksakan ini. Simbol mungkin berversi, dan Anda harus melakukan lebih banyak tentang level yang lebih rendah dengan nm untuk melihat ini,


Cara lain adalah dengan menggunakan objdump.

objdump -x "biner" | grep DIPERLUKAN

Ini menunjukkan semua dependensi yang diperlukan hanya untuk biner ini. Sangat berguna.


Linux
  1. Menambal Biner Dengan Dd?

  2. Perpustakaan Grafis 3d Linux?

  3. Cara Menemukan Saat Spfile Dibuat Di Server Linux

  1. Apakah (ditautkan secara statis) DLL menggunakan tumpukan yang berbeda dari program utama?

  2. daftar/temukan semua file biasa di semua subdirektori tidak termasuk file biner

  3. Bagaimana cara mengetahui sudah berapa lama sistem Linux diinstal?

  1. Cari tahu apakah perpustakaan ada di jalur

  2. ldd tidak menemukan jalur, Bagaimana menambahkan

  3. Perintah Linux untuk menemukan Strings dalam file Binary atau non ascii