2012-11-01 24 views
5

Podczas wykonywania ldd w pliku zwraca liczbę szesnastkową w nawiasach lub każdej znalezionej bibliotece.ldd liczba szesnastkowa w nawiasach

Na przykład:

[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) 

Jeżeli liczba hex nie jest jednym z biblioteki wykonywalny raz dostałem połączonego przeciw, może wystąpić błąd informacji o wersji.

Mam dwa pytania:

  1. Skąd ta wartość pochodzą?
  2. Jak mogę się dowiedzieć, której wartości heksadecymu szuka plik wykonywalny? (tj. ten, z którym oryginalnie został połączony)
+0

Nie wiem tego na pewno, ale nie sądzę, że liczba szesnastkowa ma coś wspólnego z wersją biblioteki - myślę, że jest to (proponowany/oczekiwany) adres, w którym ta biblioteka byłaby mapowana do programuje przestrzeń adresową po jej uruchomieniu. Aby zobaczyć, jakiej wersji biblioteki potrzebujesz, wypróbuj 'ldd -v'. – twalberg

+0

Jeśli te wartości nie zmieniają się za każdym razem, gdy uruchamiasz program ldd, po prostu zgraj ten system w celu zniszczenia i użyj prawdziwego, bezpiecznego i aktualnego systemu Linux. – BatchyX

Odpowiedz