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.
- AR : Creates static libraries, and inserts, deletes, lists, and extracts members.
- STRINGS: Lists all of the printable strings contained in an object file.
- STRIP: Deletes symbol table information from an object file.
- NM : Lists the symbols defined in the symbol table of an object file.
- SIZE: Lists the names and sizes of the sections in an object file.
- 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.
- 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.
- LDD : Lists the shared libraries that an executable needs at run time.
- A very good webpage introducing Linux libraries: Static, Shared Dynamic and Loadable Linux Libraries
- How to Write Shared Libraries? http://www.akkadia.org/drepper/dsohowto.pdf
- Program Library HOWTO: http://tldp.org/HOWTO/Program-Library-HOWTO/index.html