Varias personas han respondido algunos aspectos de la consulta, pero no todos.
Todos los archivos en las computadoras se almacenan como 1 y 0. Imágenes, archivos de texto, música, aplicaciones ejecutables, archivos de objetos, etc.
Todos son 0 y 1. La única diferencia es que se interpretan de manera diferente dependiendo de lo que los abra.
Cuando ve un archivo de texto usando cat
, el ejecutable ( cat
en este caso) lee todos los 1 y 0 y se los presenta convirtiéndolos en caracteres de su alfabeto o idioma relevante.
Cuando ve un archivo usando un visor de imágenes, toma todos los 1 y 0 y los convierte en una imagen, dependiendo del formato del archivo y algo de lógica para resolverlo.
Los archivos binarios compilados no son diferentes, se almacenan como 1 y 0.
La respuesta de arzyfex le brinda las herramientas para ver esos archivos de diferentes maneras, pero leer un archivo como binario funciona para cualquier archivo en una computadora, al igual que verlo como octal, o hexadecimal, o de hecho ASCII, puede que no tenga sentido en cada uno de esos formatos.
Si desea comprender lo que hace un archivo binario ejecutable, debe verlo de una manera que le muestre el lenguaje del ensamblador (como inicio), que puede hacer usando,
objdump -d /path/to/binary
que es un desensamblador, toma el contenido binario y lo convierte de nuevo en ensamblador (que es un lenguaje de programación de muy bajo nivel). objdump
no siempre se instala de manera predeterminada, por lo que es posible que deba instalarse dependiendo de su entorno Linux.
Alguna lectura externa.
NB: como señala @Wildcard, es importante tener en cuenta que los archivos no contienen los caracteres 1 y 0 (como los ve en la pantalla), contienen datos numéricos reales, bits individuales de información que están en (1) o apagado (0). Incluso esa descripción es solo una aproximación de la verdad. El punto clave es que si encuentra un visor que le muestre los 1 y los 0, incluso eso sigue interpretando los datos del archivo y luego le muestra los caracteres ASCII para 0 y 1. Los datos se almacenan en formato binario ( ver el enlace del número binario arriba). La entrada wiki comunitaria de Pierre-Olivier cubre esto con más detalle.