Шестнадцатеричный редактор - Hex editor

Шестнадцатеричный редактор (или двоичный редактор файлов или редактор байт ) представляет собой компьютерную программу , которая позволяет манипуляцию основных двоичных данных , которые представляют собой компьютерный файл . Название «шестнадцатеричный» происходит от « шестнадцатеричного », стандартного числового формата для представления двоичных данных. Типичный компьютерный файл занимает несколько областей на носителе, содержимое которых объединяется в файл. Шестнадцатеричные редакторы, предназначенные для анализа и редактирования данных секторов физических сегментов гибких или жестких дисков , иногда называют редакторами секторов или редакторами дисков .

Подробности

Скриншот обычного шестнадцатеричного редактора (шестнадцатеричный редактор Паскаля Риго (Pixel))

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

Шестнадцатеричные редакторы могут использоваться для исправления данных, поврежденных системными или прикладными программными проблемами, когда может быть нецелесообразно писать специальную программу для внесения исправлений. Они полезны для обхода проверок редактирования приложений, которые могут предотвратить исправление ошибочных данных. Они использовались для «исправления» исполняемых программ с целью изменения или добавления нескольких инструкций в качестве альтернативы перекомпиляции. Исправления программ для систем мэйнфреймов IBM иногда распространяются как исправления, а не как полная копия уязвимой программы.

В большинстве приложений шестнадцатеричного редактора данные компьютерного файла представлены в виде шестнадцатеричных значений, сгруппированных в 4 группы по 4 байта (или две группы по 8 байтов), за которыми следует одна группа из 16 печатаемых символов ASCII, которые соответствуют каждой паре шестнадцатеричных значений. (каждый байт). Непечатаемые символы ASCII (например, Bell) и символы, которые занимают более одного символьного пробела (например, табуляция), обычно представлены точкой (".") В следующем поле ASCII.

Ограничения по размеру

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

Ранняя история

С момента изобретения компьютеров и их различного использования было создано множество форматов файлов. В некоторых особых обстоятельствах было удобно иметь доступ к данным в виде ряда необработанных цифр. Для систем IBM OS / 360 была доступна программа SUPERZAP (AMASPZAP), которая могла редактировать необработанные записи на диске, а также понимать формат исполняемых файлов. Пары шестнадцатеричных цифр (каждая пара может представлять байт) являются текущим стандартом, потому что подавляющее большинство используемых сегодня машин и форматов файлов обрабатывают данные в единицах или группах по 8-битных байтов. Шестнадцатеричные и восьмеричные числа являются общими, потому что эти цифры позволяют увидеть, какие биты в байте установлены. Сегодня десятичное представление вместо шестнадцатеричного становится вторым популярным вариантом из-за более знакомой числовой базы и дополнительных вспомогательных инструментов, таких как системы шаблонов и инспекторы данных, которые уменьшают преимущества шестнадцатеричного числового формата.

Системы шаблонов

Пример простого шестнадцатеричного редактора на основе шаблонов.

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

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

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

Системы сценариев

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

Языки сценариев сильно различаются, часто это языки конкретных продуктов, похожие на пакетные файлы MS-DOS, и системы, поддерживающие полноценные языки сценариев, такие как Lua или Python .

Системы плагинов

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

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

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