stringtranslate.com

Archivo binario

Volcado hexadecimal del favicono de Wikipedia de 318 bytes o . La primera columna enumera la dirección de inicio de la línea, mientras que la indica repetición.*

Un archivo binario es un archivo informático que no es un archivo de texto . [1] El término "archivo binario" se utiliza a menudo como un término que significa "archivo que no es de texto". [2] Muchos formatos de archivos binarios contienen partes que pueden interpretarse como texto; por ejemplo, algunos archivos de documentos informáticos que contienen texto formateado , como los archivos de documentos antiguos de Microsoft Word , contienen el texto del documento pero también contienen información de formato en formato binario. [2]

Estructura

Los archivos binarios suelen considerarse una secuencia de bytes , lo que significa que los dígitos binarios ( bits ) se agrupan en ocho. Los archivos binarios suelen contener bytes que están destinados a ser interpretados como algo distinto a caracteres de texto . Los programas informáticos compilados son ejemplos típicos; de hecho, a las aplicaciones compiladas a veces se las denomina, en particular por parte de los programadores, binarios . Pero los archivos binarios también pueden significar que contienen imágenes, sonidos, versiones comprimidas de otros archivos, etc.; en resumen, cualquier tipo de contenido de archivo. [1]

Algunos archivos binarios contienen encabezados , bloques de metadatos que utiliza un programa informático para interpretar los datos del archivo. El encabezado suele contener una firma o un número mágico que puede identificar el formato. Por ejemplo, un archivo GIF puede contener varias imágenes y los encabezados se utilizan para identificar y describir cada bloque de datos de imagen. Los bytes iniciales del encabezado contendrían texto como GIF87ao GIF89aque puede identificar el binario como un archivo GIF . Si un archivo binario no contiene ningún encabezado, puede denominarse archivo binario plano .

Un archivo de texto puede constar total o parcialmente de información binaria codificada. Al enviar archivos binarios a través de la red, estos pueden estar codificados de modo que utilicen únicamente caracteres imprimibles. Esto suele ser necesario debido a las limitaciones de los protocolos de red utilizados para la navegación por Internet y la comunicación por correo electrónico. Una de estas codificaciones es Base64 . Asimismo, los archivos que contienen información de clave pública y privada para su uso en sistemas que emplean criptografía asimétrica (como los certificados de sitios web ) también pueden almacenarse con la información binaria codificada en caracteres imprimibles.

Manipulación

Para enviar archivos binarios a través de ciertos sistemas (como el correo electrónico ) que no admiten todos los valores de datos, a menudo se traducen a una representación de texto simple (utilizando, por ejemplo, Base64 ). La codificación de los datos tiene la desventaja de aumentar el tamaño del archivo durante la transferencia (por ejemplo, el uso de Base64 aumentará el tamaño del archivo aproximadamente en un 30 %), así como de requerir la traducción de nuevo a binario después de la recepción. El aumento de tamaño se puede contrarrestar con una compresión de enlace de nivel inferior, ya que los datos de texto resultantes tendrán aproximadamente tanta menos entropía como mayor tamaño, por lo que los datos reales transferidos en este escenario probablemente serían muy cercanos al tamaño de los datos binarios originales. Consulte Codificación de binario a texto para obtener más información sobre este tema.

Microsoft Windows y sus bibliotecas estándar para los lenguajes de programación C y C++ permiten al programador especificar un parámetro que indica si se espera que un archivo sea texto simple o binario al abrir un archivo; esto afecta a las llamadas de la biblioteca estándar para leer y escribir desde el archivo en el sentido de que el sistema convierte entre el carácter de "fin de línea" de C/C++ (el carácter de avance de línea ASCII) y la secuencia de fin de línea que Windows espera en los archivos (los caracteres de retorno de carro y avance de línea ASCII en secuencia). En sistemas tipo Unix , las bibliotecas estándar de C y C++ en esos sistemas también permiten al programador especificar si se espera que un archivo sea texto o binario, pero las bibliotecas pueden ignorar ese parámetro, y lo hacen, ya que la secuencia de fin de línea en sistemas tipo Unix es simplemente el carácter de fin de línea de C/C++.

Visita

Se puede utilizar un editor o visor hexadecimal para ver los datos del archivo como una secuencia de valores hexadecimales (o decimales, binarios o de caracteres ASCII) para los bytes correspondientes de un archivo binario. [2]

Si se abre un archivo binario en un editor de texto , cada grupo de ocho bits se traducirá normalmente como un único carácter, y el usuario verá una pantalla (probablemente ininteligible) de caracteres textuales. Si el archivo se abre en alguna otra aplicación, esa aplicación tendrá su propio uso para cada byte: tal vez la aplicación tratará cada byte como un número y generará una secuencia de números entre 0 y 255, o tal vez interpretará los números en los bytes como colores y mostrará la imagen correspondiente. Otro tipo de visores (llamados "extractores de palabras") simplemente reemplazan los caracteres no imprimibles con espacios que revelan solo el texto legible por humanos. Este tipo de vista es útil para una inspección rápida de un archivo binario para encontrar contraseñas en juegos, encontrar texto oculto en archivos que no son de texto y recuperar documentos corruptos. [2] Incluso se puede utilizar para inspeccionar archivos sospechosos (software) en busca de efectos no deseados. Por ejemplo, el usuario vería cualquier URL/correo electrónico al que el software sospechoso pueda intentar conectarse para cargar datos no aprobados (para robar). Si el archivo en sí se trata como un ejecutable y se ejecuta, entonces el sistema operativo intentará interpretar el archivo como una serie de instrucciones en su lenguaje de máquina .

Interpretación

Los estándares son muy importantes para los archivos binarios. Por ejemplo, un archivo binario interpretado por el conjunto de caracteres ASCII dará como resultado que se muestre texto. Una aplicación personalizada puede interpretar el archivo de manera diferente: un byte puede ser un sonido, un píxel o incluso una palabra entera. El binario en sí mismo no tiene sentido, hasta que un algoritmo ejecutado defina lo que se debe hacer con cada bit, byte, palabra o bloque. Por lo tanto, simplemente examinar el binario e intentar compararlo con formatos conocidos puede llevar a una conclusión errónea sobre lo que realmente representa. Este hecho se puede utilizar en esteganografía , donde un algoritmo interpreta un archivo de datos binarios de manera diferente para revelar contenido oculto. Sin el algoritmo, es imposible saber que existe contenido oculto.

Compatibilidad binaria

Dos archivos que sean compatibles en binario tendrán la misma secuencia de ceros y unos en la parte de datos del archivo. Sin embargo, el encabezado del archivo puede ser diferente.

El término se utiliza más comúnmente para indicar que los archivos de datos producidos por una aplicación son exactamente iguales a los archivos de datos producidos por otra aplicación. Por ejemplo, algunas empresas de software producen aplicaciones para Windows y Macintosh que son compatibles a nivel binario, lo que significa que un archivo producido en un entorno Windows es intercambiable con un archivo producido en un Macintosh. Esto evita muchos de los problemas de conversión causados ​​por la importación y exportación de datos.

Un posible problema de compatibilidad binaria entre diferentes computadoras es el orden de bytes de la computadora. Algunas computadoras almacenan los bytes de un archivo en un orden diferente. [3]

Véase también

Referencias

  1. ^ ab "Definición de archivo binario por The Linux Information Project (LINFO)". www.linfo.org . Consultado el 12 de octubre de 2017 .
  2. ^ abcd "Archivos ASCII vs. binarios". www.cs.umd.edu . Consultado el 12 de octubre de 2017 .
  3. ^ "NCL: Lectura de datos binarios". www.ncl.ucar.edu . Archivado desde el original el 12 de octubre de 2017 . Consultado el 12 de octubre de 2017 .

Enlaces externos