Формат hex – Формат файлов *.hex — radiohlam.ru

Формат hex – Формат файлов *.hex — radiohlam.ru

Чем и как открыть файл HEX

Формат файла hex, сокращённо от «шестнадцатеричный» или «base-16», является структурой необработанных данных, которой следуют все файлы, хранящиеся на вашем компьютере. Хотя буквально каждый документ хранится в этом формате, найти его на ПК практически невозможно. Хотя далеко не все знают, что возможность напрямую изменять необработанные биты и байты на ПК иногда может быть очень полезна.

Чем и как открыть файл HEX

Работа с файлами с расширением .HEX.

Что обозначает расширение HEX

Система счисления, которую люди используют для подсчёта, называется десятичной (числа от 0 до 9), и была изобретена персами около 6000 лет назад. В 1950-х или 1960-х годах IBM формализовала шестнадцатеричную систему счисления, которая является коротким способом представления двоичных данных. Вместо использования цифр 0-9, шестнадцатеричное число использует цифры от 0 до F. Достигнув конца числовых «цифр», вы просто увеличиваете число влево на единицу, точно так же, как вы делаете это с системой счёта десятичных чисел.

Файлы с расширением HEX имеют те же свойства, что и двоичные. Все байты размещаются один за другим. Информация об адресе или контрольные суммы не добавляются. Единственная разница с двоичным форматом такова, что каждый байт преобразуется в 2 символа ASCII в диапазоне 0-9 и A-F, представляющие 2 шестнадцатеричные цифры. Эти символы сгруппированы по строкам. Номер пары в строке обычно может варьироваться от 1 до 255, где наиболее общей длиной являются 16 или 32 пары. Каждая строка заканчивается парой CR (ASCII-значение $ 0D) или CRLF (ASCII). Для работы с такими документами требуется специальная программа-редактор хекс-файлов. Она в удобном виде выведет всю информацию и позволит достаточно комфортно её воспринимать и изменять.

Что такое HEX-файл

Как открыть файл HEX

Далеко не все являются программистами, и иногда открыть файл с расширением HEX может понадобиться обычному человеку, чтобы посмотреть в нём некую информацию. На самом деле для такой простой задачи вполне достаточно обычного Блокнота – стандартного приложения, которое имеется в любой системе Windows. Ведь этот файл, по сути, является текстовым, просто в нём записана специфическая информация, но обычными символами.

Для этого достаточно кликнуть на файле правой кнопкой мыши, выбрать в меню пункт «Открыть» или «Открыть с помощью», затем «Выбрать из списка установленных программ», а далее просто выбрать стандартный Блокнот. Снимите галочку с пункта «Использовать выбранную программу для всех файлов этого типа» – вдруг вы его потом будете открывать другой программой. Можно просто открыть Блокнот, а файл в него перетащить, и он откроется.

Гораздо удобнее для открытия таких файлов подходит другая версия Блокнота – Notepad++. Скачать можно по этой ссылке. Эта программа также есть у многих, так как более удобна. Но она может к тому же распознавать многие языки программирования и файлы HEX в ней выглядят гораздо удобнее, так как есть выделение цветом. Notepad++ представляет собой как бы примитивный HEX-редактор, и этим можно пользоваться совершенно свободно.

Так выглядит HEX-файл, открытый в Notepad++. В стандартном Блокноте так же, но без цвета.

Так выглядит HEX-файл, открытый в Notepad++. В стандартном Блокноте так же, но без цвета.

А теперь рассмотрим более подробно, для чего может понадобиться открывать, а тем более изменять файлы с шестнадцатеричным содержимым. Кстати, если вы собираетесь делать это часто, то лучше скачайте и установите специальный HEX-редактор – их в Интернете довольно много. Некоторые из них подробнее рассматриваются далее.

Взлом игр и файлов

Популярная причина, по которой вы можете использовать шестнадцатеричный редактор, – взлом игр. Вы можете загрузить документ сохранения игры и изменить сумму денег, например, от 1000 до 1000000 долларов. В более поздних играх всё сделано намного сложнее. Многие современные игры используют либо сжатие, либо шифрование, что во много раз затрудняет декомпиляцию состояния сохранения или игры. Тем не менее, некоторые игры по-прежнему позволяют редактировать определённые переменные, например, Sonic Spinball. В дополнение к просмотру файлов игры, из сохранённого файла иногда можно извлечь другую важную информацию, к которой у вас иначе не было бы доступа. Это сильно зависит от типа файла и того, какую информацию вы ищете, но использование шестнадцатеричного редактора полезно для определения того, что именно находится в документе.

Отладка и редактирование

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

Какие hex-редакторы использовать

Шестнадцатеричный редактор представляет собой софт, используемый для просмотра и редактирования бинарных файлов. Двоичный документ представляет собой документ, который содержит данные в машиночитаемой форме. HEX-редакторы позволяют изменять содержимое необработанных данных файла. Поскольку шестнадцатеричный редактор используется для редактирования двоичных файлов, их иногда называют двоичным редактором или редактором двоичных файлов. Если открыть документ с помощью шестнадцатеричного редактора, появится сообщение о том, что документ редактируется в шестнадцатеричном формате, а процесс использования шестнадцатеричного редактора называется шестнадцатеричным редактированием. Шестнадцатеричные редакторы отличаются от обычных текстовых рядом функций. Основой шестнадцатеричного редактора является то, что они отображают необработанное содержимое файла. Нет кодирования или перевода в текст – только необработанный машинный код. Во-вторых, номера строк вместо того являются адресом смещения от начала файла. Мы подобрали несколько лучших бесплатных программ для просмотра и редактирования документов HEX.

HxD

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

HxD

Преимущества:

  • Действительно большие данные – последняя версия HxD обрабатывает большие наборы данных. Если он помещается на диск, HxD сможет его открыть.
  • Стандартные параметры – HxD содержит множество полезных дополнений, таких как генератор контрольных сумм, поддержка нескольких наборов символов, редактор ОЗУ, уничтожитель файлов, разбиение и объединение, неограниченное количество отмен и портативная версия.
  • Экспорт данных – программа экспортирует данные в исходный код (C, C#, Java, Pascal и VB.NET) или в шестнадцатеричные форматы.

Недостатки:

  • Не для неопытного пользователя, но это не недостаток. Программа ориентирована на продвинутых пользователей.

DeltaHex Editor

Один из лучших hex-редакторов на основе библиотеки deltahex. Используйте действие «Открыть как шестнадцатеричный» в главном меню «Файл» или в контекстном меню файлов проекта.

Характеристики:

  • Отображение данных в виде шестнадцатеричного кода, предварительный просмотр текста.
  • «Вставить» и «Перезаписать» режимы редактирования.
  • Поддержка выбора и буфера обмена.
  • Отмена/повтор.
  • Выбор кодировки.
  • Отображение непечатных символов.
  • Коды также могут быть двоичными, восьмеричными или десятичными.
  • Поиск текстового/шестнадцатеричного кода с соответствующей подсветкой.
  • Дельта-режим – изменения сохраняются только в памяти до сохранения.
  • Поддержка огромных файлов.

DeltaHex Editor

Free Hex Editor Neo

Free Hex Editor Neo – это самый быстрый бесплатный редактор двоичных файлов для платформы Windows. Алгоритмы обработки данных Neo Hex Editor чрезвычайно оптимизированы и тщательно настроены для обработки операций с большими файлами.

Характеристики программы:

  • Неограниченное Undo/Redo.
  • Редактировать, Копировать, Вырезать, Вставить, Удалить, Заполнить, Импорт/Экспорт, Вставить шаблон/файл, Изменить размер файла, Смещение к началу, Изменить биты.
  • Поиск и замена шаблонов.
  • Подсветка.
  • Байты, слова, двойные слова, группировка четырёх слов.
  • Шестнадцатеричное, Десятичное, Восьмеричное, Двоичное и т.д. представление данных.
  • Изменение атрибутов файла.
  • Анализ данных буфера обмена.
  • Создание бинарных патчей, поиск/замена регулярных выражений.
  • Многоязычный интерфейс.

Free Hex Editor Neo

Функции и возможности утилиты:

  • Статистика и шестнадцатеричный анализатор – модуль анализа двоичных данных позволяет анализировать распределение байтов, символов и строк по шестнадцатеричным дампам и текстовым данным. Анализатор двоичных файлов Neo поддерживает шаблоны следующих типов: шаблоны символов и строк ASCII/Unicode, шаблоны данных Hex, Decimal, Octal, Binary, Float, Double и RegEx (Regular Expression).
  • Графическое представление проанализированных данных в пользовательском интерфейсе Neo – софт поддерживает тепловую карту и визуализацию данных гистограммы. Вы также можете анализировать двоичный документ в форме описательной статистики: среднее значение, дисперсия выборки, стандартное отклонение, стандартная ошибка, эксцесс, асимметрия, медиана, диапазон, минимальное, максимальное, сумма и т.д.
  • Сравнение файлов – Neo представляет собой расширенный инструмент сравнения в шестнадцатеричном формате. Встроенный редактор hex позволяет сравнивать 2 шестнадцатеричных файла, используя два разных алгоритма сравнения: простой (от байта к байту) и алгоритм разности (сопоставление блоков).
  • Редактор ОЗУ – модификатор процесса позволяют редактировать память и обрабатывать данные, загруженные в ОЗУ ПК операционной системой. RAM Explorer предоставляет возможность легко просматривать загруженные процессы и переходить к определённым смещениям. Затем вы можете напрямую обращаться к этим блокам данных и редактировать их в окне шестнадцатеричного редактора. Таким образом, Hex Editor Neo предоставляет возможность просматривать и редактировать данные бинарных программ прямо в оперативной памяти.
  • Дизассемблер – программа также позволяет разбирать исполняемые файлы x86, x64 и .NET. Neo Assembler View поддерживает следующие наборы инструкций: x86, x86-64, MMX, SSE, SSE2, 3DNow!, MSIL. Вы можете загружать файлы символов как для 32-битных, так и для 64-битных исполняемых файлов. Neo – просто идеальный редактор dll/exe!
  • Двоичные шаблоны/редактор структуры – программа поддерживает синтаксический анализ внутренней структуры следующих файлов: exe, dll, sys, ocx, bmp, png, avi, rar, icc, vhd, zip, tiff, wav, tga, psd, pic, pcx, pal, emf EPS.
  • Модуль Structure View – позволяет настраивать двоичные шаблоны. Вы можете написать своё собственное определение структуры файла, используя внутренний язык, подобный C/C++, почти для любого двоичного документа. Например, если вы хотите редактировать файлы данных, вам нужно сначала описать файловую структуру, а затем привязать её к конкретному файлу, используя специальное окно редактора.
  • Анализатор структуры файла делает двоичную корректировку намного проще, чем просто редактирование необработанных шестнадцатеричных байтов. Открывайте, просматривайте и редактируйте файлы hex/bin с небывалой лёгкостью!

Hex Editor Neo предоставляет базовые, расширенные и даже инновационные функции. Шестнадцатеричное редактирование теперь доступно каждому начинающему пользователю!

PSPad

Любимый шестнадцатеричный редактор большинства программистов. PSPad, помимо того, что он является отличным редактором текста и кода, предлагает опцию «Открыть в HEX Editor…», которая запускает специальный режим редактирования. Когда вы находитесь в этом режиме, вы можете увидеть местоположение и шестнадцатеричные значения каждого бита файла. У вас есть два варианта корректировки – вы можете редактировать шестнадцатеричные значения по местоположению, или справа у вас есть буквенно-цифровое представление этого значения, которое вы также можете редактировать.

PSPad

XVI32

XVI32 также очень способный шестнадцатеричный редактор. Как и в PSPad, вы можете редактировать шестнадцатеричные значения напрямую или через отображение символов. В нём также есть несколько расширенных инструментов редактирования шестнадцатеричных кодов, таких как калькулятор адресов для проверки смещений и других специфичных для шестнадцатеричных данных параметров, которые могут помочь вам обойти шестнадцатеричный документ. Если вы, конечно, знаете, что делаете.

Знание того, как работает ваш ПК, становится всё более и более важным, поскольку техника становится всё проще и проще в использовании. Если у вас остались вопросы относительно редактирования шестнадцатеричных файлов, оставьте комментарий под этой статьёй.

nastroyvse.ru

СпецПромДизайн

Формат Intel-HEX

Шестнадцатиричный объектный формат файлов Intel-HEX (далее просто HEX-формат) – это способ представить двоичные данные в виде кодов ASCII. Поскольку файл состоит из символов ASCII, а не двоичных кодов, появляется возможность хранить данные на бумаге, перфоленте или перфокартах, выводить их на терминал, принтер и т.д. Восьмибитовый HEX-формат файлов предусматривает размещение данных и кода в 16-разрядном линейном адресном пространстве для 8-разрядных процессоров Intel. 16-разрядный HEX-формат файлов дополнительно позволяет использовать 20-разрядное сегментное пространство адресов 16-разрядных процессоров Intel. И, наконец, 32-разрядный формат позволяет оперировать линейным 32-разрядным адресным пространством 32-разрядных процессоров.

Шестнадцатиричное представление двоичных данных в виде ASCII требует использование двух символов для записи одного байта, при этом первый символ всегда соответствует старшей тетраде битов одного байта. Такой подход увеличивает количество символов в двое по сравнению с количеством двоичных данных.

Формат файла организован в виде набора записей, содержащих сведения о типе, количестве данных, адресе их загрузки в память и дополнительные сведения. В настоящее время определены шесть различных типов записей, однако не все их комбинации определены для разных форматов данных.

Записи могут быть следующих типов:

  • Данные (определена для всех форматов данных)
  • Маркер конца файла (определена для всех форматов файла)
  • Сегментный адрес (определена для 16- и 32-битных форматов)
  • Сегментный адрес старта (определена для 16- и 32-битных форматов)
  • Линейный адрес (определена только для 32-битного формата)
  • Линейный адрес старта (определена только для 32-битнного формата)

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
DATA
Контрольная сумма
CHECKSUM
: 1 байт 2 байта 1 байт RECLEN байт 1 байт

Каждая запись представляет собой ASCII-строку файла. В одной строке – одна запись.

Каждая запись начинается с МАРКЕРА ЗАПИСИ, который обозначается ASCII-символом двоеточие («:»).

Каждая запись содержит поле RECLEN, определяющее количество байтов данных или информационных байтов, назначение которых определяется типом записи. Максимальное значение этого поля – 255 (0xFF).

Каждая запись содержит поле OFFSET, определяющее 16-битное смещение в адресном пространстве байтов данных. Это поле используется только в записях данных, а в остальных случаях оно должно быть равно нулю.

Каждая запись содержит поле TYPEREC, определяющее тип текущей записи (из ранее упомянутых шести). Это поле используется для интерпретации всех остальных полей записи. Типы записей кодируются следующими значениями поля TYPEREC (в ASCII):

  • «00» – данные
  • «01» – маркер конца файла
  • «02» – адрес сегмента
  • «03» – сегментный адрес старта
  • «04» – линейный адрес
  • «05» – линейный адрес старта

Каждая запись содержит поле DATA переменной длины, которое содержит ноль или более байтов, закодированных символами ASCII. Назначение этих байтов определяется типом записи.

Наконец, каждая запись завершается полем CHECKSUM, гарантирующим целостность всех данных записи. Значение этого поля равно дополнению по модулю 256 до нуля суммы по модулю 256 всех байтов, начиная с поля RECLEN и заканчивая последним байтом поля DATA. При считывании записи следует суммировать по модулю 256 все байты записи, включая поле CHECKSUM. Если в конце концов сумма равна нулю, это означает, что данные считаны без искажений, в противном случае данные недостоверны.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
ULBA
Контрольная сумма
CHECKSUM
: 02 0000 04 2 байта 1 байт

Эта запись служит для задания значения битов 16-31 в линейном базовом адресе (LBA, Linear Base Address), причем биты 0-15 LBA равны нулю. Биты 16-31 LBA определяются верхним линейным базовым адресом (ULBA, Upper Linear Base Address). Абсолютное значение адреса байта данных в памяти определяется как сумма значения LBA и значения поля OFFSET в последующих записях данных, плюс индекс байта данных внутри поля DATA. Эта сумма выполняется без учёта переполнения результата (то есть не может превышать 0xFFFFFFFF, 4 Гб).

Фактический линейный адрес байта данных вычисляется в итоге по формуле:

ByteAddr = (LBA + DRLO + DRI) mod 4G,

где: DRLO – значение поля OFFSET записи данных;
DRI – индекс байта в поле DATA записи данных;
mod 4G – операция «сложение по модулю 232«.

Когда запись «Линейный адрес» встречается в файле, вычисляется значение LBA, которое действует для всех последующих записей данных, пока не встретится снова запись «Линейный адрес». По умолчанию LBA = 0.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
USBA
Контрольная сумма
CHECKSUM
: 02 0000 04 2 байта 1 байт

Эта запись служит для задания значения битов 4-19 сегментного базового адреса (SBA, Segment Base Address), где биты 0-3 SBA равны нулю. Биты 4-19 SBA определяются верхним базовым адресом сегмента (USBA, Upper Segment Base Address). Абсолютный адрес байта в записи данных вычисляется путем прибавления к SBA значения поля OFFSET записи данных и индекса байта относительно начала поля DATA. Прибавление смещения (OFFSET) осуществляется по модулю 65536 (64 К), без учёта переполнения.

Таким образом, адрес конкретного байта вычисляется по формуле:

ByteAddr = SBA + (DRLO + DRI) mod 64K,

где: DRLO – значение поля OFFSET записи данных;
DRI – индекс байта в поле DATA записи данных;
mod 64K – операция «сложение по модулю 65536».

Когда запись «Адрес сегмента» встречается в файле, вычисляется значение SBA, которое действует для всех последующих записей данных, пока не встретится снова запись «Адрес сегмента». По умолчанию SBA = 0.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
DATA
Контрольная сумма
CHECKSUM
: 1 байт 2 байта 00 RECLEN байтов 1 байт

Эта запись собственно и содержит данные. Метод вычисления фактического (абсолютного) адреса каждого байта данных в памяти определяется по вышеприведённым формулам и зависит от формата данных.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
EIP
Контрольная сумма
CHECKSUM
: 04 0000 05 4 байта 1 байт

Запись «Линейный адрес старта» используется для указания адреса, с которого начинается исполнение объектного файла. Это значение заносится в регистр EIP процессора. Следует обратить внимание, что эта запись определяет только точку входа сегмента кода для защищённого режима процессоров 80386. В обычном режиме точка старта определяется записью «Сегментный адрес старта», которая определяет значения пары регистров CS:IP.

Запись «Линейный адрес старта» может находиться в любом месте файла. Если её нет, загрузчик использует адрес старта по умолчанию.

Значение регистра EIP процессора содержится в соответствующем поле записи, для него требуется всегда 4 байта.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Данные
CS:IP
Контрольная сумма
CHECKSUM
: 04 0000 03 4 байта 1 байт

Запись «Сегментный адрес старта» используется для указания адреса, с которого начинается исполнение объектного файла. Это значение определяет 20-битный адрес, заносимый в регистры CS:IP процессора. Следует обратить внимание, что эта запись определяет только точку входа в 20-битном адресном пространстве процессоров 8086/80186.

Запись «Сегментный адрес старта» может находиться в любом месте файла. Если её нет, загрузчик использует значение по умолчанию.

Значение регистров CS:IP процессора содержится в соответствующем поле записи, для него требуется всегда 4 байта. Значение хранится в порядке «от старшего к младшему», то есть младший байт значения регистра IP хранится в четвертом байте поля CS:IP, старший – в третьем, затем во втором хранится младший байт значения регистра CS, и в первом – старший байт регистра CS.

Формат записи следующий:

Маркер записи Кол-во данных
RECLEN
Смещение
OFFSET
Тип записи
TYPEREC
Контрольная сумма
CHECKSUM
: 00 0000 01 1 байт

Эта запись не содержит полей с изменяющимися данными, поэтому выглядит всегда совершенно одинаково: «:00000001FF». Запись обозначает конец данных в файле. Все последующие строки, если они есть в файле, игнорируются.

:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF

     Маркер записи
     Кол-во данных
     Смещение
     Тип записи
     Данные
     Контрольная сумма

spd.net.ru

Intel HEX — это… Что такое Intel HEX?

Intel HEX — формат файла, предназначенного для представления произвольных двоичных данных в текстовом виде. По историческим причинам является стандартом де-факто при прошивке разнообразных микросхем с памятью (микроконтроллеров, ПЗУ, EEPROM и т. п.). Соответственно большинство инструментов подготовки образов прошивки (компиляторы, редакторы, просмотрщики и т. п.) умеют работать с этим форматом.

Файл обычно имеет расширение HEX. Встречаются две модификации: intel-standart и intel-extended. Intel-standart поддерживает только 16 бит адрес (до 64 кБайт). Intel-extended имеет расширенный список типов записей и 32-бит адрес.

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

Формат записи

Объяснение первое

Файл состоит из текстовых ASCII строк. Каждая строка представляет собой одну запись. Каждая запись начинается с двоеточия (:), после которого идет набор шестнадцатеричных цифр кратных байту:

  • Начало записи (:).
  • Количество байт данных, содержащихся в этой записи. Занимает один байт (две шестнадцатеричных цифры), что соответствует 0…255 в десятичной системе.
  • Начальный адрес блока записываемых данных — 2 байта. Этот адрес определяет абсолютное местоположение данных этой записи в двоичном файле.
  • Один байт, обозначающий тип записи. Определены следующие типы записей:
    • 0 — запись содержит данные двоичного файла.
    • 1 — запись обозначает конец файла, данных не содержит. Имеет характерный вид «:00000001FF».
    • 2 — запись адреса сегмента (подробнее см.ниже).
    • 4 — запись расширенного адреса (подробнее см.ниже).
  • Байты данных, которые требуется сохранить в EPROM (их число указывается в начале записи, от 0 до 255 байт).
  • Последний байт в записи является контрольной суммой. Рассчитывается так чтобы сумма всех байтов в записи была равна 0.
  • Строка заканчивается стандартной парой CR/LF (0Dh 0Ah).

Объяснение второе

Файл формата Intel HEX может состоять из любого количества записей. Каждая запись представляет собой ASCII-строку состоящую из нескольких пар 16-ричных цифр. Строка должна начинаться с символа двоеточия и оканчиваться парой символов CR и LF. Запись состоит из пяти полей следующего формата:
:LLAAAATTDD…CC
Каждая группа букв (LL, AAAA, TT и т. д.) представляет собой отдельное поле. Каждая буква — отдельную 16-ричную цифру (4 бита). Каждое поле состоит, как минимум, из двух 16-ричных цифр (байт). Ниже представлена расшифровка полей записи:

  •  : Каждая запись в файле Intel HEX должна начинаться с двоеточия.
  • LL Поле длины — показывает количество байт данных (DD) в записи.
  • AAAA Поле адреса — представляет начальный адрес записи.
  • TT Поле типа. Оно может принимать следующие значения:
    • 00 запись содержит данные двоичного файла.
    • 01 запись является концом файла.
    • 02 запись адреса сегмента (подробнее см. ниже).
    • 03 Start Segment Address Record.
    • 04 запись расширенного адреса (подробнее см. ниже).
    • 05 Start Linear Address Record.
  • DD Поле данных. Запись может содержать несколько байт данных. Количество байт данных должно соответствовать полю LL.
  • CC Поле контрольной суммы. Поле контрольной суммы вычисляется путем сложения значений всех байт (пар 16-ричных цифр) записи по модулю 256 с последующим переводом в дополнительный формат (отнять получившееся значение от 0). Таким образом, если просуммировать все пары шестнадцатеричных чисел, включая LL, AA, TT, DD, CC, получится 0.

Запись адреса сегмента

Файл формата Intel HEХ может содержать записи для процессоров i8086, которые определяют адрес сегмента (иначе говоря — номер параграфа, один параграф — это 16 байт). Если используется директива h267, то этот тип записи заменяет запись расширенного линейного адреса. Номер параграфа используется как смещение адреса для всех записей данных, следующих за этой записью. Смещение представляет собой сдвиг адреса на четыре бита влево. Например, смещение равное 0x1234 даст реальный адрес 0x12340. Пример записи:
:020000021000EC где:

  • 02 Количество байт данных
  • 0000 В этом типе записи всегда равно 0000
  • 02 Тип записи 02 (запись адреса сегмента).
  • 1000 Номер параграфа (реальный адрес будет равен 0x10000).
  • EC Контрольная сумма

Запись расширенного адреса

Когда используется директива h267, файл формата Intel HEX возможно будет содержать записи расширенного линейного адреса. Этот тип записи определяет значения двух старших байт абсолютного адреса (биты 16-31). Эти два старших байта адреса будут применяться как смещение адреса для всех записей данных, следующих за этой записью. Пример записи:
: 0200000400FFFB
где:

  • 02 Количество байт данных
  • 0000 Всегда равно 0
  • 04 Тип записи 04 (запись расширенного линейного адреса)
  • 00FF Старшее слово смещения адреса (0x00FF0000)
  • FB Контрольная сумма

Запись конца файла

Файлы формата Intel HEX должны иметь запись Конца Файла (EOF). Пример записи:
:00000001FF где:

  • 00 Количество байт записи
  • 0000 Поле игнорируется. Не имеет значения, что там записано, но обычно всегда равно 0
  • 01 Тип записи 01 (Конец Файла)
  • FF Контрольная сумма, вычисленная как 01h + NOT(00h + 00h + 00h + 01h).

Примеры

Пример 1

:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF

     Начало записи      Счётчик байт      Адрес      Тип записи      Данные      Контрольная сумма

Пример 2

Пример одной записи данных:
:10246200464C5549442050524F46494C4500464C33 где

  • 10 Количество байт данных (16 байт)
  • 2462 Адрес памяти, куда будет помещена запись.
  • 00 Тип записи — данные.
  • 464C…464C Данные
  • 33 Контрольная сумма записи

Пример 3

: 020000021000EC
: 10C20000E0A5E6F6FDFFE0AEE00FE6FCFDFFE6FD93
: 10C21000FFFFF6F50EFE4B66F2FA0CFEF2F40EFE90
: 10C22000F04EF05FF06CF07DCA0050C2F086F097DF
: 10C23000F04AF054BCF5204830592D02E018BB03F9
: 020000020000FC
: 04000000FA00000200
: 00000001FF

См. также

SREC — формат файла используемый ф.Motorola

Ссылки

dic.academic.ru

Как открыть файл HEX? Расширение файла .HEX

Что такое файл HEX?

Файлы с расширением HEX являются исходными файлами, используемыми для сохранения различных данных, хранящихся в шестнадцатеричной системе. Они могут включать настройки, конфигурации или другую информацию.

Файлы HEX могут встречаться в текстовом или двоичном виде. Текстовые файлы HEX можно легко открыть с помощью стандартной программы редактирования текста, но для отображения содержимого двоичных файлов требуется специальный шестнадцатеричный редактор. HEX-файл является результатом преобразования исходного кода в машинный код.

Где используются HEX файлы?

Данные, содержащиеся в файлах HEX, используются компиляторами и ассемблерами в процессе написания кода, управляющего микроэлементами, такими как встроенные системы, память EEPROM или флэш-память. Микроэлементы устанавливаются во многих обычно используемых устройствах, как менее, так и более продвинутых, например: пульты дистанционного управления или системы, управляющие двигателем автомобиля.

Структура данных в файлах HEX

Шестнадцатеричные данные в HEX-файле хранятся в строках текста, и каждый из них состоит из шести элементов:

  1. Стартовый тег — двоеточие;
  2. Количество приманок — две цифры в шестнадцатеричной системе, которые определяют длину записи данных;
  3. Адрес — четыре цифры в шестнадцатеричной системе, которые позволяют адресовать до 64 КБ памяти на один сегмент;
  4. Тип записи — две цифры в шестнадцатеричной системе, от 00 до 05;
  5. Данные — конфигурация данных, которая хранит приманку в шестнадцатеричной текстовой форме;
  6. Контрольная сумма — две цифры в шестнадцатеричной системе, которые составляют контрольную сумму записи без двоеточия.
Программы, которые поддерживают HEX расширение файла

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

Как открыть файл HEX?

Отсутствие возможности открывать файлы с расширением HEX может иметь различное происхождение. Что важно, все распространенные проблемы, связанные с файлами с расширением HEX, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Мы подготовили список, который поможет вам решить ваши проблемы с файлами HEX.

Шаг 1. Скачайте и установите FlexHex

Проблемы с открытием и работой с файлами HEX, скорее всего, связаны с отсутствием надлежащего программного обеспечения, совместимого с файлами HEX на вашем компьютере. Этот легкий. Выберите FlexHex или одну из рекомендованных программ (например, Hex Editor, Windows Notepad, NotePad++ text editor) и загрузите ее из соответствующего источника и установите в своей системе. Полный список программ, сгруппированных по операционным системам, можно найти выше. Если вы хотите загрузить установщик FlexHex наиболее безопасным способом, мы рекомендуем вам посетить сайт и загрузить его из официальных репозиториев.

Шаг 2. Убедитесь, что у вас установлена последняя версия FlexHex

Вы по-прежнему не можете получить доступ к файлам HEX, хотя FlexHex установлен в вашей системе? Убедитесь, что программное обеспечение обновлено. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Если у вас установлена более старая версия FlexHex, она может не поддерживать формат HEX. Последняя версия FlexHex должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.

Шаг 3. Настройте приложение по умолчанию для открытия HEX файлов на FlexHex

После установки FlexHex (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия HEX файлов. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы

Изменить приложение по умолчанию в Windows

  • Щелкните правой кнопкой мыши на файле HEX и выберите «Открыть с помощью опцией».
  • Далее выберите опцию Выбрать другое приложение а затем с помощью Еще приложения откройте список доступных приложений.
  • Наконец, выберите Найти другое приложение на этом… , укажите папку, в которой установлен FlexHex, установите флажок Всегда использовать это приложение для открытия HEX файлы свой выбор, нажав кнопку ОК

Изменить приложение по умолчанию в Mac OS

  • Щелкните правой кнопкой мыши на файле HEX и выберите Информация.
  • Откройте раздел Открыть с помощью, щелкнув его название
  • Выберите подходящее программное обеспечение и сохраните настройки, нажав Изменить все
  • Наконец, это изменение будет применено ко всем файлам с расширением HEX должно появиться сообщение. Нажмите кнопку Вперед, чтобы подтвердить свой выбор.
Шаг 4. Убедитесь, что HEX не неисправен

Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным HEX файлом. Проблемы с открытием файла могут возникнуть по разным причинам.

1. Проверьте HEX файл на наличие вирусов или вредоносных программ.

Если HEX действительно заражен, возможно, вредоносное ПО блокирует его открытие. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если сканер обнаружил, что файл HEX небезопасен, действуйте в соответствии с инструкциями антивирусной программы для нейтрализации угрозы.

2. Убедитесь, что структура файла HEX не повреждена

Вы получили HEX файл от другого человека? Попросите его / ее отправить еще раз. Возможно, что файл не был должным образом скопирован в хранилище данных и является неполным и поэтому не может быть открыт. При загрузке файла с расширением HEX из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.

3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.

Некоторые файлы требуют повышенных прав доступа для их открытия. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл Hexadecimal Source Format.

4. Убедитесь, что в системе достаточно ресурсов для запуска FlexHex

Если в системе недостаточно ресурсов для открытия файлов HEX, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.

5. Проверьте, есть ли у вас последние обновления операционной системы и драйверов

Последние версии программ и драйверов могут помочь вам решить проблемы с файлами Hexadecimal Source Format и обеспечить безопасность вашего устройства и операционной системы. Возможно, файлы HEX работают правильно с обновленным программным обеспечением, которое устраняет некоторые системные ошибки.

www.file-extension.info

Intel HEX — Intel HEX

Intel HEX это формат файла , который передает двоичные данные в ASCII текстовом виде. Он широко используется для программирования микроконтроллеров , ППЗА и других типов программируемых логических устройств. В типичной прикладной программы, компилятор или ассемблер преобразует программу «ы исходный код (например, в C или сборки языка ) в машинный код и выводит его в файл HEX. Распространенные расширения файлов , используемые для результирующих файлов являются A43 или HEX. Файл HEX затем импортируется на программиста , чтобы «сжечь» машинный код в ПЗУ , или передается в целевую систему для загрузки и выполнения.

Формат

Intel HEX состоит из строк ASCII текста, которые разделены переводом строки или возврата каретки символов или обоих. Каждая строка текста содержит шестнадцатеричные символы , которые кодируют несколько двоичных чисел. Эти двоичные числа могут представлять данные, адреса памяти или другие значения, в зависимости от их положения в линии и от типа и длины линии. Каждая строка текста называется запись .

структура записи

Запись (строка текста) состоит из шести полей (частей) , которые появляются в порядке слева направо:

  1. Начало кода , один символ, ASCII , двоеточие «:».
  2. Количество байт , две шестнадцатеричные цифры (одна шестнадцатеричная цифра пара), что указывает на количество байт (шестнадцатеричное число пар) в поле данных. Максимальное количество байт 255 (0xFF). 16 (0x10) и 32 (0x20) обычно используются отсчеты байт.
  3. Адрес , четыре шестнадцатеричные цифры, представляющие собой адрес начала памяти 16-битного смещения данных. Физический адрес данных вычисляются путем добавления этого смещения к ранее установленному базовому адресу, что позволяет адресацию памяти за пределами 64 килобайта 16-разрядные адреса. Базовый адрес, который по умолчанию равен нулю, может быть изменен с помощью различных типов записей. Базовые адреса и адрес смещение всегда выражаются в виде больших байт значений.
  4. Тип записи (см типов записей ниже), две шестнадцатеричных цифр, 00 до 05 , определяющих значения поля данных.
  5. Данные , последовательность п байтов данных, представленных 2 н шестнадцатеричных цифр. Некоторые записи опустим это поле ( п равно нулю). Смысл и интерпретация байт данных зависят от приложения.
  6. Контрольная сумма , две шестнадцатеричные цифр, вычисленное значениекоторое может быть использовано для проверки записи не имеют ошибок.
Цвет легенда

В качестве наглядного пособия, поля HEX записей Intel окрашивается в этой статье следующим образом:

  Начало кода   байт счетчика   адреса   Тип записи   данных   контрольной суммы

Расчет контрольной суммы

Контрольная сумма байты рекорда является двоичным дополнением (отрицательным) младших байт (LSB) суммы всех декодированных значений байт в записи , предшествующих контрольную сумму. Это вычисляется путем суммирования декодированных значений байт и извлечения LSB сумм ( то есть , контрольной суммы данных), а затем вычисляется дополнение до двух из LSB ( например , путь инвертирования своих бит и добавляя один).

Так , например, в случае записи : 03 0030 00 02337A 1E , сумма декодированных значений байт 03 + 00 + 30 + 00 + 02 + 33 + 7A= E2. В двоичном дополнении E2является1E , который является контрольной суммой байт появляется в конце записи.

Действительность записи может быть проверена путем вычисления контрольной суммы и проверок того, что вычисленная контрольная сумма равна контрольная сумма, появляющейся в записи; ошибка отображается, если контрольные суммы различаются. Так как контрольная сумма байт Запись является отрицательной контрольной суммы данных, этот процесс может быть уменьшен до суммирования всех декодированных значений байт — включая контрольную сумму пластинки — и проверки того, что младший бит суммы равен нулю.

Текстовая строка терминаторы

HEX записи Intel отделены друг от друга одним или более символов завершения строки ASCII , так что каждая запись отображается только на текстовой строке. Это улучшает разборчивость визуально ограничивающие записи , а также обеспечивает заполнение между записями , которые могут быть использованы для улучшения машины синтаксического анализа эффективности.

Программы , которые создают HEX запись обычно используют строки терминации символы , которые соответствуют условностям их операционных систем . Например, программы Linux используют один LF ( перевод строки , шестнадцатеричное значение 0A) символ завершения строк, в то время как программы для Windows используют CR ( возврат каретки , шестнадцатеричное значение 0D) , а затем с помощью LF.

типы записей

Intel HEX имеет шесть стандартных типов записей:

Hex кодТип записиОписаниепример
00ДанныеСодержит данные и 16-битный начальный адрес данных. Количество байт указывает количество байтов данных в записи. Пример , показанный справа имеет 0B (одиннадцать) байт данных (61, 64, 64, 72, 65, 73, 73, 20, 67, 61, 70) Расположено в последовательных адресах, начиная с адресом 0010, : 0B 0010 00 6164647265737320676170 A7
01Конец файлаДолжно произойти ровно один раз для каждого файла в последней строке файла. Поле данных пуст (байт , таким образом , счетчик равен 00) И поле адреса, как правило, 0000, : 00 0000 01FF
02Расширенный сегмент АдресПоле данных содержит 16-битовый адрес сегмента базового а (таким образом , счетчик байтов всегда 02) Совместим с 80×86 реального режима адресации. Поле адреса (как правило,0000) Игнорируется. Адрес сегмента из самых последних02запись умножается на 16 и добавляет к каждому последующей записи данных адреса, чтобы сформировать физический начальный адрес для данных. Это позволяет адресацию до одного мегабайта адресного пространства. : 02 0000 02 1200 EA
03Начало сегмента АдресДля 80×86 процессоров, определяет начальное содержание CS: регистры IP. Поле адреса0000, Количество байт всегда 04, Первые два байта данных является CS значения, последние два являются IP — значение. : 04 0000 03 00003800 C1
04Расширенная Linear АдресПозволяет для 32 битной адресации (до 4GiB). Поле адреса ЗАПИСИ игнорируется (как правило,0000) И его количество байт всегда 02, Эти два байта данных (большие байты) задают верхние 16 бит 32-битовый абсолютного адрес для всех последующих типов00записи; эти старшие биты адреса действительны до следующего04запись. Абсолютный адрес для типа00 запись формируется путем объединения верхних 16 адресных бит из самых последних 04 запись с низким 16 адресных битов из 00запись. Если тип00 запись не предшествует любому типу 04 записи, то ее верхние 16 бит адреса по умолчанию 0000. : 02 0000 04 FFFF FC
05Начало Линейный адресПоле адреса 0000(не используется) и количество байт всегда 04, Четыре байта данных представляет 32-битное значение адреса. В случае 80386 и выше процессоров, этот адрес загружается в регистр EIP. : 04 0000 05 000000CD 2A

Именованные форматы

Специальные имена иногда используются для обозначения форматов HEX-файлов, которые используют определенные подмножества типов записей. Например:

  • I8HEX файлы используют только типы записей00 а также 01 (16 бит адреса)
  • I16HEX файлы используют только типы записей00 через 03 (20 бит адреса)
  • I32HEX файлы используют только типы записей00, 01, 04, а также 05 (32 бита адреса)

пример файла

Этот пример показывает файл, который имеет четыре записи данных, за которыми следует конец из файла записи:

:10010000214601360121470136007EFE09D2190140
:100110002146017E17C20001FF5F16002148011928
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF

  Начало кода   байт счетчика   адреса   Тип записи   данных   контрольной суммы

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

статьи
Другой
  • Шаблон: Intel HEX , полезен для отображения Intel Hex записи в статьях Википедии

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

внешняя ссылка

Документация
Программы Программное обеспечение
  • BINEX — конвертер между Intel HEX и двоичном для Windows.
  • SRecord , конвертер между Intel HEX и бинарный файл для Linux ( использования ), C ++ исходный код.
Исходный код программного обеспечения
  • libgis , с открытым исходным кодом C библиотека , которая преобразует Intel HEX, Motorola S-Record, Atmel Generic файлы.
<img src=»//en.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1×1″ alt=»» title=»»>

ru.qwertyu.wiki

Что такое HEX и ASCII-дескрипторы или как определить формат файла без расширения

Как известно любая информация будь то текст, изображение или видео, по сути, является ничем иным как набором двоичного кода — последовательности нулей и единиц. Именно в таком виде на жёстком диске хранятся данные. Понятие двоичный код едва ли не абстрактное, это не запись в привычном понимании этого слова, двоичный или машинный код это скорее состояние микроскопических ячеек на магнитной поверхности жесткого диска. Положительный заряд такой ячейки имеет знак плюс или 1, отрицательный — минус или 0.

Логически объединенные последовательности нулей и единиц как раз и составляют то, что мы называем файлами. Но ведь мы знаем и то, что типов файлов очень много. Есть текстовые файлы, мультимедийные, архивные, системные, исполняемые и так далее. Каким же образом операционная система определяет как читать или обрабатывать тот или иной файл? Прикладные программы распознают тип файла по его расширению — набору символов следующих после имени файла и отделенных от него точкой.

Но что будет, если расширение удалить? Всё правильно, операционная система не сможет открыть такой файл, так как не будет знать какую программу для этого использовать. Однако ни логическая структура, ни содержимое переименованного файла от этого не изменится. Вы и сами в этом можете убедиться удалив расширение какого-нибудь файла, а затем попробовав его открыть соответствующей программой. Уверены, с этим у вас проблем не возникнет.

Следовательно, вовсе не расширение определяет тип файла. Тогда что же? Тип файла определяет его формат или иначе спецификация структуры данных. Расширение и формат очень часто путают, хотя на деле это совершенно разные понятия. Тут возникает вполне закономерный вопрос, а как определить формат файла, если его расширение по какой-то причине оказалось утрачено? Оказывается очень просто.

Грубо говоря, все файлы состоят из двух частей. Первая часть это заголовок, содержащий различную метаинформацию включая те данные, которые позволяют прикладным программам этот самый файл идентифицировать. Вторая часть это «тело» файла. Отвечающая за определение типа файла часть заголовка файла именуется дескриптором или описанием. Наиболее распространёнными типами дескрипторов являются HEX и ASCII. Первый тип заголовков можно просмотреть только с помощью специальных утилит — шестнадцатеричных редакторов.

Для просмотра дескрипторов второго типа можно обойтись обычным текстовым редактором, тем же Блокнотом или Notepad++. Однако следует учитывать, что далеко не все последовательности байтов можно перевести в ASCII-код, поэтому для определения формата всё-таки лучше использовать HEX-редакторы. Открытый в HEX-редакторе файл отображается в виде матрицы из последовательности байтов. Каждая ячейка соответствует одному байту. Данные дескриптора содержатся как раз в первых трёх ячейках (реже двух или четырех), расположенных по горизонтали. Представляют они из себя шесть символов в шестнадцатеричном счислении, например 49 44 33 или ff d8 e0.

Открытый в HEX-редакторе файл

Естественно они нуждаются в расшифровке. А расшифровать их можно на специальных сайтах с описаниями форматов. Одним из лучших сайтов, где можно определить формат по HEX-дескриптору является open-file.ru. Есть и другие подобные ресурсы, но они не настолько удобны. На open-file.ru же имеется специальная поисковая форма, куда можно вставить HEX или ASCII дескриптор и пробить его по базе данных. Система быстро найдёт соответствующий формат и предоставит вам его полное описание.

Open-file.ru поиск по HEX

С HEX-редакторами всё более или менее понятно, но как мы сказали для определения ASCII-заголовков также можно использовать редакторы текстовые. Принцип здесь тот же самый, открываем файл Блокнотом или Notepad++, копируем первые символы и вставляем их в поисковое поле того же open-file или другого сайта с поддержкой поиска по заголовкам.

Казалось бы всё очень просто, но есть в деле идентификации форматов и свои сложности. Иногда ASCII-заголовки совпадают с расширением файла (RAR и PDF), но может быть и такое, что заголовок оказывается принадлежащим сразу нескольким форматам. Это можно видеть на примере офисного формата DOCX (PK и 50 4b 03 04). В таких случаях точно определить формат проблематично.

ASCII

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

Файл является размеченным текстовым документом

Так, строка [Content_Types].xml в DOCX явно указывает на то, что исследуемый файл является размеченным текстовым документом.

www.white-windows.ru

Чем открыть hex? — Все о расширениях и форматах

Информация о расширении hex

Формат 1

Название (англ.): BinHex Encoded File

Название (рус.): Кодированный файл BinHex

Разработчик: BinHex

Категория: Зашифрованные файлы

Описание: HEX или BinHex Encoded File представляет собой формат файла кодированного с помощью старых версий приложения BinHex используемого в операционной системе Mac OS. Относится формат HEX к категории зашифрованных файлов. Это тип кодирования применялся для преобразования неких данных в двоичный текстовый файл, который можно было передавать по сети без риска повреждений, обычно по электронной почте. Такие документы обычно имеют больший вес, нежели исходный файл. В настоящее время формат BinHex Encoded File считается устаревшим. В новых версиях программы BinHex он был заменен форматом HQX.

Для открытия (редактирования) файла этого формата можно использовать следующие программы:

Формат 2

Название (англ.): Hexadecimal Source File

Название (рус.): Шестнадцатеричный исходный код

Разработчик: Неизвестен

Категория: Скрипты, исходный код

Описание: HEX или Hexadecimal Source File представляет собой формат файла содержащего шестнадцатеричный исходный код. Файлы этого типа относятся к категории скриптов. Внутреннее содержимое НЕХ-файла может быть представлено различными данными, например сведениями о конфигурации, параметрами настроек и т.п., сохранными в шестнадцатеричном формате. Иногда файлы этого типа могут быть представлены в виде простых текстовых документов. В этом случае открыть их можно любым текстовым редактором. В остальных случаях для просмотра НЕХ-файлов следует использовать такие программы как Heaventools FlexHex, Cygnos Hex Editor или HHD Hex Editor.

Для открытия (редактирования) файла этого формата можно использовать следующие программы:

Рейтинг расширения: 5/5
Всего проголосовало: 1 чел.

 

Есть вопросы? Мы будем рады ответить на них в комментариях ниже :).

Please enable JavaScript to view the comments powered by Disqus. comments powered by

openext.ru