En primer lugar, los archivos binarios pueden abrirse! No tengas miedo, ¡solo necesitas las herramientas adecuadas! Al ser datos binarios, un editor de texto no es la herramienta adecuada, por supuesto; una herramienta adecuada podría ser un editor hexadecimal, o un editor avanzado como emacs, o una herramienta que en lugar de simplemente "dar salida" a bytes en su representación "hexadecimal" y dejarlo solo con su interpretación de los datos, conoce ese formato particular y " interpreta "los datos correctamente, en algún nivel (por ejemplo,GIMP interpreta un archivo PNG como una imagen y lo muestra; un analizador PNG "descompondrá" los datos dentro de las secciones PNG que muestran las banderas indicadas en ciertos bytes, ... etc.).
En su caso, la respuesta general es que el archivo de objeto contiene su código compilado (y datos), además de toda la información adicional que necesita el vinculador y, finalmente, más.
Cómo estas informaciones están "organizadas" y en algunos casos en qué consiste el "eventualmente más", depende del formato del objeto específico. Algunos enlaces de wikipedia el listado algunas de las posibilidades son this, this, this, this ...
Cada uno de estos puede tener sus herramientas para analizar el contenido; p.ej. readelf
para ELF, objdump
para varios formatos (intente objdump -i
) dependiendo de cómo se haya compilado.
Hay un montón de herramientas * nix para buscar dentro de un archivo de objeto: comience con nm, http://unixhelp.ed.ac.uk/CGI/man-cgi?nm –