stringtranslate.com

Бинарный файл

Шестнадцатеричный дамп 318- байтового значка Википедии или . В первом столбце нумеруется начальный адрес строки, а *обозначается повторение.

Бинарный файл — это компьютерный файл , который не является текстовым файлом . [1] Термин «двоичный файл» часто используется как термин, означающий «нетекстовый файл». [2] Многие форматы двоичных файлов содержат части, которые можно интерпретировать как текст; например, некоторые компьютерные файлы документов , содержащие форматированный текст , такие как старые файлы документов Microsoft Word , содержат текст документа, но также содержат информацию о форматировании в двоичной форме. [2]

Состав

Двоичные файлы обычно представляют собой последовательность байтов , что означает, что двоичные цифры ( биты ) сгруппированы по восьмеркам. Двоичные файлы обычно содержат байты, которые предназначены для интерпретации не как текстовые символы . Скомпилированные компьютерные программы являются типичными примерами; действительно, скомпилированные приложения иногда, особенно программисты, называются двоичными файлами . Но двоичные файлы также могут означать, что они содержат изображения, звуки, сжатые версии других файлов и т. д. – короче говоря, любой тип содержимого файла. [1]

Некоторые двоичные файлы содержат заголовки — блоки метаданных , используемые компьютерной программой для интерпретации данных в файле. Заголовок часто содержит подпись или магическое число , которое может идентифицировать формат. Например, файл GIF может содержать несколько изображений, а заголовки используются для идентификации и описания каждого блока данных изображения. Ведущие байты заголовка будут содержать текст типа GIF87aили GIF89a, который может идентифицировать двоичный файл как файл GIF . Если двоичный файл не содержит заголовков, его можно назвать плоским двоичным файлом .

Текстовый файл может частично или полностью состоять из закодированной двоичной информации. При отправке двоичных файлов по сети они могут быть закодированы таким образом, чтобы в них использовались только печатные символы. Это часто необходимо из-за ограничений сетевых протоколов, используемых для просмотра веб-страниц и связи по электронной почте. Одной из таких кодировок является Base64 . Кроме того, файлы, содержащие информацию об открытом и закрытом ключах для использования в системах, использующих асимметричную криптографию (например, сертификаты веб-сайтов ), также могут храниться с двоичной информацией, закодированной печатными символами.

Манипуляция

Чтобы отправлять двоичные файлы через определенные системы (например, электронную почту ), которые допускают не все значения данных, их часто переводят в простое текстовое представление (с использованием, например, Base64 ). Кодирование данных имеет тот недостаток, что размер файла увеличивается во время передачи (например, использование Base64 увеличит размер файла примерно на 30%), а также требует перевода обратно в двоичный формат после получения. Увеличенному размеру можно противодействовать сжатием ссылок более низкого уровня, поскольку результирующие текстовые данные будут иметь примерно столько же меньшую энтропию , сколько и увеличенный размер, поэтому фактические данные, передаваемые в этом сценарии, вероятно, будут очень близки к размеру исходных. двоичные данные. Дополнительную информацию по этому вопросу см. в разделе Кодирование двоичного текста в текст .

Microsoft Windows и ее стандартные библиотеки для языков программирования C и C++ позволяют программисту указать параметр, указывающий, будет ли файл открытым текстом или двоичным при открытии файла; это влияет на вызовы стандартной библиотеки для чтения и записи из файла, поскольку система преобразует между символом «конца строки» C/C++ (символ перевода строки ASCII) и последовательностью конца строки, которую Windows ожидает в файлах (символ ASCII символы возврата каретки и перевода строки последовательно). В Unix-подобных системах стандартные библиотеки C и C++ в этих системах также позволяют программисту указать, будет ли файл текстовым или двоичным, но библиотеки могут и игнорируют этот параметр, поскольку последовательность конца строки в Unix-подобных системах — это просто символ конца строки C/C++.

Viewing

Шестнадцатеричный редактор или средство просмотра можно использовать для просмотра данных файла как последовательности шестнадцатеричных (или десятичных, двоичных или символов ASCII) значений для соответствующих байтов двоичного файла. [2]

Если двоичный файл открывается в текстовом редакторе , каждая группа из восьми битов обычно преобразуется как один символ, и пользователь увидит (вероятно, неразборчивое) отображение текстовых символов. Если файл открыт в каком-то другом приложении, это приложение будет использовать каждый байт по-своему: возможно, приложение будет обрабатывать каждый байт как число и выводить поток чисел от 0 до 255 — или, возможно, интерпретировать числа в байтах. как цвета и отобразить соответствующее изображение. Другие типы средств просмотра (так называемые «экстракторы слов») просто заменяют непечатаемые символы пробелами, открывая только удобочитаемый текст. Этот тип просмотра полезен для быстрой проверки двоичного файла с целью поиска паролей в играх, поиска скрытого текста в нетекстовых файлах и восстановления поврежденных документов. [2] Его даже можно использовать для проверки подозрительных файлов (программного обеспечения) на предмет нежелательных эффектов. Например, пользователь увидит любой URL-адрес или адрес электронной почты, к которым подозрительное программное обеспечение может попытаться подключиться, чтобы загрузить несанкционированные данные (чтобы украсть). Если файл сам рассматривается как исполняемый файл и запускается, то операционная система попытается интерпретировать файл как серию инструкций на своем машинном языке .

Интерпретация

Стандарты очень важны для двоичных файлов. Например, двоичный файл, интерпретируемый набором символов ASCII, приведет к отображению текста. Пользовательское приложение может интерпретировать файл по-разному: байт может быть звуком, пикселем или даже целым словом. Двоичный формат сам по себе бессмысленен до тех пор, пока исполняемый алгоритм не определит, что следует делать с каждым битом, байтом, словом или блоком. Таким образом, простое изучение двоичного файла и попытка сопоставить его с известными форматами может привести к неправильному выводу о том, что он на самом деле представляет. Этот факт можно использовать в стеганографии , где алгоритм по-разному интерпретирует файл двоичных данных, чтобы выявить скрытое содержимое. Без алгоритма невозможно определить существование скрытого контента.

Бинарная совместимость

Два файла, совместимые на двоичном уровне, будут иметь одинаковую последовательность нулей и единиц в части данных файла. Однако заголовок файла может быть другим.

Этот термин чаще всего используется для обозначения того, что файлы данных, созданные одним приложением, точно такие же, как файлы данных, созданные другим приложением. Например, некоторые компании-разработчики программного обеспечения производят приложения для Windows и Macintosh , которые являются двоично совместимыми, что означает, что файл, созданный в среде Windows, взаимозаменяем с файлом, созданным на Macintosh. Это позволяет избежать многих проблем преобразования, вызванных импортом и экспортом данных.

Одной из возможных проблем двоичной совместимости между разными компьютерами является порядок байтов компьютера. Некоторые компьютеры хранят байты в файле в другом порядке. [3]

Смотрите также

Рекомендации

  1. ^ ab «Определение двоичного файла, предоставленное The Linux Information Project (LINFO)». www.linfo.org . Проверено 12 октября 2017 г.
  2. ^ abcd «Ascii против двоичных файлов». www.cs.umd.edu . Проверено 12 октября 2017 г.
  3. ^ «NCL: Чтение двоичных данных» . www.ncl.ucar.edu . Архивировано из оригинала 12 октября 2017 г. Проверено 12 октября 2017 г.

Внешние ссылки