Am 27.10.2011 21:15, schrieb clemens fischer:
$ readelf -d /usr/sbin/minilogd
Dynamic section at offset 0x1e50 contains 20 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] ... $ readelf -d /lib/libc.so.6
Dynamic section at offset 0x159b40 contains 27 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2] ...
"ld-linux-x86-64.so.2" had no entry "NEEDED", so my script stops there.
Your system has two versions of libc.so.6: A 32 bit and a 64 bit version (/usr/lib32/libc.so.6 vs. /lib/libc.so.6), and your script cannot distinguish them. Actually, using readelf, this is not so easy to solve: 1) A 64 bit binary always loads only 64 bit libraries, so the ELF class of the library can help. 2) The length of the address at the beginning of the line is 64 bit here, not 32 bit. I think namcap has code for this, but I am not sure.