Varie persone hanno risposto ad alcuni aspetti della query, ma non a tutti.
Tutti i file sui computer sono memorizzati come 1 e 0. Immagini, file di testo, musica, applicazioni eseguibili, file oggetto, ecc.
Sono tutti 0 e 1. L'unica differenza è che vengono interpretati in modo diverso a seconda di ciò che li apre.
Quando visualizzi un file di testo utilizzando cat
, l'eseguibile ( cat
in questo caso) legge tutti gli 1 e gli 0 e te li presenta convertendoli in caratteri dell'alfabeto o della lingua in questione.
Quando visualizzi un file utilizzando un visualizzatore di immagini, sono necessari tutti gli 1 e gli 0 e li trasforma in un'immagine, a seconda del formato del file e della logica per elaborarlo.
I file binari compilati non sono diversi, sono memorizzati come 1 e 0.
La risposta di arzyfex ti dà gli strumenti per visualizzare quei file in diversi modi, ma leggere un file come binario funziona per qualsiasi file su un computer, così come visualizzarlo come ottale, esadecimale, o addirittura ASCII, potrebbe non avere senso in ciascuno di quei formati.
Se vuoi capire cosa fa un file binario eseguibile, devi visualizzarlo in un modo che ti mostri il linguaggio assembler (come inizio), che puoi fare usando,
objdump -d /path/to/binary
che è un disassemblatore, prende il contenuto binario e lo converte in assemblatore (che è un linguaggio di programmazione di livello molto basso). objdump
non è sempre installato per impostazione predefinita, quindi potrebbe essere necessario installarlo a seconda dell'ambiente Linux.
Qualche lettura esterna.
NB: come sottolinea @Wildcard, è importante notare che i file non contengono i caratteri 1 e 0 (come li vedi sullo schermo), contengono dati numerici reali, singoli bit di informazioni che sono su (1) o spento (0). Anche quella descrizione è solo un'approssimazione della verità. Il loro punto chiave è che se trovi un visualizzatore che ti mostra 1 e 0, anche quello sta ancora interpretando i dati dal file e quindi ti mostra i caratteri ASCII per 0 e 1. I dati sono memorizzati in un formato binario ( vedere il link al numero binario sopra). La voce wiki della community di Pierre-Olivier tratta questo in modo più dettagliato.