2012-11-01 12 views
5

Quando si esegue ldd su un file, restituisce un numero esadecimale tra parentesi e ogni libreria trovata.ldd numero esadecimale tra parentesi

Ad esempio:

[email protected]> ldd wpa_supplicant 
     linux-gate.so.1 => (0xb779b000) 
     libnl.so.1 => /usr/lib/libnl.so.1 (0xb774d000) 
     libssl.so.1.0.0 => not found 
     libcrypto.so.1.0.0 => not found 
     libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7748000) 
     libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75ed000) 
     libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb75c7000) 
     /lib/ld-linux.so.2 (0xb779c000) 

Se il numero esadecimale non è quella della biblioteca dell'eseguibile una volta ottenuto legato contro, potrebbe verificarsi un errore informazioni sulla versione.

Ho due domande:

  1. dove viene questo valore origine?
  2. Come individuare il valore esadecimale cercato dall'eseguibile? (ad esempio quello a cui originariamente era collegato)
+0

Non lo so per certo, ma non penso che il numero esadecimale abbia qualcosa a che fare con la versione della libreria - penso che sia l'indirizzo (proposto/previsto) in cui quella libreria verrebbe mappata nel i programmi indirizzano lo spazio quando lo si esegue. Per vedere quale versione di una libreria hai bisogno, prova 'ldd -v'. – twalberg

+0

Se questi valori non cambiano ogni volta che si esegue ldd, basta copiare quel sistema in brandello e utilizzare un sistema Linux reale, sicuro e aggiornato. – BatchyX

risposta

Problemi correlati