In primo luogo, i file binari possono essere aperti! Non aver paura di questo, hai bisogno solo degli strumenti giusti! Essendo dati binari, un editor di testo non è lo strumento giusto, naturalmente; uno strumento giusto potrebbe essere un editor esadecimale, o un editor avanzato come emacs, o uno strumento che invece di "esportare" semplicemente i byte nella loro rappresentazione "esadecimale" e che ti lascia solo con la tua interpretazione dei dati, conosce quel particolare formato e " interpreta "correttamente i dati, ad un certo livello (esGIMP interpreta un file PNG come immagine e lo mostra, un analizzatore PNG "decomporrà" i dati all'interno delle sezioni PNG mostrando che indicano i flag in determinati byte, ... ecc.).
Nel tuo caso, la risposta generale è che il file oggetto contiene il codice (e i dati) compilato, più tutte le informazioni aggiuntive necessarie dal linker e, infine, più.
Come queste informazioni sono "organizzate" e in alcuni casi in ciò che "alla fine più" consiste, dipende dal formato oggetto specifico. Alcuni link wikipedia sfogliare alcune delle possibilità sono this, this, this, this ...
Ognuno di questi può avere i suoi strumenti per analizzare il contenuto; per esempio. readelf
per ELF, objdump
per diversi formati (prova objdump -i
) a seconda di come è stato compilato.
Ci sono un sacco di strumenti * nix per guardare all'interno di un file oggetto: inizia con nm, http://unixhelp.ed.ac.uk/CGI/man-cgi?nm –