Saltar al contenido

¿Cómo ver un archivo binario?

Estate atento ya que en esta noticia encontrarás el hallazgo que buscas.Esta sección fue evaluado por nuestros expertos para asegurar la calidad y exactitud de nuestro post.

Solución:

Según esta respuesta de Tyranid:

hexdump -C yourfile.bin 

a menos que quieras editarlo, por supuesto. La mayoría de las distribuciones de Linux tienen hexdump por defecto (pero obviamente no todos).


Actualizar

Según esta respuesta de Emilio Bool:

xxd hace tanto binario como hexadecimal

Para contenedor:

xxd -b file

Para hexadecimal:

xxd file

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.

Son todos 0 y 1. La única diferencia es que se interpretan de manera diferente dependiendo de qué 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 correspondiente.

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 todo.

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, 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 ensamblador (como comienzo), lo 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 forma predeterminada, por lo que es posible que deba instalarse en función de su entorno Linux.

Alguna lectura externa.

  • https://en.wikipedia.org/wiki/Binary_number
  • https://en.wikipedia.org/wiki/Assembly_language

NB: como señala @Wildcard, es importante tener en cuenta que los archivos no contienen el caracteres 1 y 0 (como los ve en la pantalla), contienen datos numéricos reales, bits individuales de información que están activados (1) o desactivados (0). Incluso esa descripción es solo una aproximación de la verdad. Ellos key El punto es que si encuentra un visor que le muestre los 1 y 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 un formato binario (consulte la Enlace de número binario arriba). La entrada de la wiki de la comunidad de Pierre-Olivier cubre esto con más detalle.

En el nivel bajo, un archivo es codificado como una secuencia de ceros y unos.

Pero incluso los programadores rara vez van allí en la práctica.

Primero (y más importante que esta historia de 0 y 1), debe comprender que todo lo que manipula la computadora está codificado con números.

  • Un carácter se codifica con un número, utilizando tablas de juegos de caracteres. Por ejemplo, la letra ‘A’ tiene un valor de 65 cuando se codifica usando ASCII. Ver http://www.asciitable.com

  • Un píxel está codificado con uno o más números (hay muchos formatos gráficos) Por ejemplo, en el formato estándar de 3 colores, un píxel amarillo se codifica como: 255 para rojo, 255 para verde, 0 para azul. Consulte http://www.quackit.com/css/css_color_codes.cfm (elija un color y vea las celdas R, G y B)

  • Un archivo ejecutable binario se escribe en Ensamblador; cada instrucción de montaje está codificada como números. Por ejemplo, la instrucción de montaje MOVB $0x61,%al está codificado por dos números: 176,97 Ver http://www.sparksandflames.com/files/x86InstructionChart.html (Cada instrucción tiene un número asociado de 00 a FF, porque se usa la notación hexadecimal, ver más abajo)

en segundo lugar : cada número puede tener múltiples representaciones o anotaciones.

Digamos que tengo 23 manzanas.

  • Si hago grupos de diez manzanas, obtendré: 2 grupos de diez y 3 manzanas solitarias. Eso es exactamente lo que queremos decir cuando escribimos 23: un 2 (decenas), luego un 3 (unidades).
  • Pero también puedo hacer grupos de 16 manzanas. Así que obtendré un grupo de 16 y 7 manzanas solitarias. En hexadecimal notación (así se llama la base 16), escribiré: 17 (16 + 7). Para distinguir de la notación decimal, la notación hexadecimal generalmente se indica con un prefix o un sufijo: 17h, # 17 o $ 17. Pero, ¿cómo representar más de 9 grupos de 16 o más de 9 manzanas solas? Simplemente, usamos letras de la A (10) a la F (15). El número 31 (como en 31 manzanas) se escribe como # 1F en hexadecimal.

  • En la misma línea, podemos hacer un grupo de dos manzanas. (Y grupo de dos grupos de dos manzanas, es decir, grupo de 2×2-manzanas, y así sucesivamente). Entonces 23 es: 1 grupo-de-2x2x2x2-manzanas, 0 grupo-de-2x2x2-manzanas, 1 grupo-de-2×2-manzanas, 1 grupo de 2 manzanas y 1 manzana solitaria que se anotará 10111 en binario.

(Ver https://en.wikipedia.org/wiki/Radix)

Físicamente, los mecanismos que permiten dos estados (conmutadores) son fáciles de hacer, tanto en el disco como en el almacenamiento de la memoria.

Es por eso que los datos y los programas, vistos como números, se escriben y manipulan en su forma binaria.

Luego se traducen, dependiendo del tipo de datos, a su forma apropiada (letra A, píxel amarillo) o se ejecutan (instrucción MOV).

hexdump enumera los números que codifican los datos (o el programa de ensamblaje) en su forma hexadecimal. Luego puede usar una calculadora para obtener la forma binaria correspondiente.

Acuérdate de que tienes el privilegio decir si encontraste tu atasco justo a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *