linuxelf

Determine direct shared object dependencies of a Linux binary?


How can I easily find out the direct shared object dependencies of a Linux binary in ELF format?

I'm aware of the ldd tool, but that appears to output all dependencies of a binary, including the dependencies of any shared objects that binary is dependent on.


Solution

  • You can use readelf to explore the ELF headers. readelf -d will list the direct dependencies as NEEDED sections.

     $ readelf -d elfbin
    
    Dynamic section at offset 0xe30 contains 22 entries:
      Tag        Type                         Name/Value
     0x0000000000000001 (NEEDED)             Shared library: [libssl.so.1.0.0]
     0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
     0x000000000000000c (INIT)               0x400520
     0x000000000000000d (FINI)               0x400758
     ...