There are a number of tools available on Unix systems to help you understand and manipulate object files. In particular, the GNU binutils package is especially helpful and runs on every Unix platform.

 

  1. AR : Creates static libraries, and inserts, deletes, lists, and extracts members.
  2. STRINGS: Lists all of the printable strings contained in an object file.
  3. STRIP: Deletes symbol table information from an object file.
  4. NM : Lists the symbols defined in the symbol table of an object file.
  5. SIZE: Lists the names and sizes of the sections in an object file.
  6. READELF: Displays the complete structure of an object file, including all of the information encoded in the ELF header. Subsumes the functionality of SIZE and NM.
  7. OBJDUMP: The mother of all binary tools. Can display all of the information in an object file. Its most useful function is disassembling the binary instructions in the .text section.
  8. LDD : Lists the shared libraries that an executable needs at run time.
--- From Computer Systems: A Programmer's Perspective.

PS:

  1. A very good webpage introducing Linux libraries: Static, Shared Dynamic and Loadable Linux Libraries
  2. How to Write Shared Libraries? http://www.akkadia.org/drepper/dsohowto.pdf
  3. Program Library HOWTO: http://tldp.org/HOWTO/Program-Library-HOWTO/index.html