Эта статья включает список общих ссылок , но в ней отсутствуют соответствующие встроенные цитаты . ( Март 2011 ) |
Hex -редактор (или редактор двоичных файлов или байтовый редактор ) — это компьютерная программа , которая позволяет манипулировать фундаментальными двоичными данными, составляющими компьютерный файл . Название «hex» происходит от « hexadecimal », стандартного числового формата для представления двоичных данных. Типичный компьютерный файл занимает несколько областей на носителе данных, содержимое которых объединяется для формирования файла. Hex-редакторы, которые предназначены для анализа и редактирования данных секторов из физических сегментов гибких или жестких дисков , иногда называются редакторами секторов или редакторами дисков .
С помощью шестнадцатеричного редактора пользователь может просматривать или редактировать необработанное и точное содержимое файла, в отличие от интерпретации того же содержимого, которое другое, более высокоуровневое прикладное программное обеспечение может связать с форматом файла . Например, это могут быть необработанные данные изображения, в отличие от того, как программное обеспечение для редактирования изображений будет интерпретировать и показывать тот же файл.
Hex-редакторы могут использоваться для исправления данных, поврежденных системными или прикладными проблемами, когда не стоит писать специальную программу для внесения исправлений. Они полезны для обхода проверок редактирования приложений, которые могут помешать исправлению ошибочных данных. Они использовались для «патча» исполняемых программ для изменения или добавления нескольких инструкций в качестве альтернативы перекомпиляции. Исправления программ для мэйнфреймовых систем IBM иногда распространяются в виде патчей, а не полной копии затронутой программы.
В большинстве приложений шестнадцатеричного редактора данные компьютерного файла представлены в виде шестнадцатеричных значений, сгруппированных в 4 группы по 4 байта (или две группы по 8 байт), за которыми следует одна группа из 16 печатаемых символов ASCII , которые соответствуют каждой паре шестнадцатеричных значений (каждый байт). Непечатаемые символы ASCII (например, Bell) и символы, которые занимают более одного символьного пространства (например, табуляция), обычно представлены точкой (".") в следующем поле ASCII.
В отличие от обычных текстовых редакторов, шестнадцатеричные редакторы способны эффективно обрабатывать файлы неопределенных размеров, поскольку при просмотре загружается только часть файла и изменяется при сохранении, а не весь файл сразу.
С момента изобретения компьютеров и их различных применений было создано множество форматов файлов. В некоторых особых обстоятельствах было удобно иметь доступ к данным в виде серии необработанных цифр. Программа под названием SUPERZAP (AMASPZAP) была доступна для систем IBM OS/360 , которая могла редактировать записи необработанных дисков, а также понимала формат исполняемых файлов. [1] Пары шестнадцатеричных цифр (каждая пара может представлять байт) являются текущим стандартом, поскольку подавляющее большинство машин и форматов файлов, используемых сегодня, обрабатывают данные в единицах или группах 8-битных байтов. Шестнадцатеричные, а также восьмеричные являются обычными, поскольку эти цифры позволяют видеть, какие биты в байте установлены. Сегодня десятичное представление вместо шестнадцатеричного становится популярным вторым вариантом из-за более привычной системы счисления и дополнительных вспомогательных инструментов, таких как системы шаблонов и инспекторы данных, которые уменьшают преимущества шестнадцатеричного числового формата. [ необходима цитата ]
Некоторые шестнадцатеричные редакторы предлагают систему шаблонов, которая может представлять последовательность байтов двоичного файла в структурированном виде, охватывая часть или весь желаемый формат файла. Обычно GUI для шаблона представляет собой отдельное окно инструментов рядом с основным шестнадцатеричным редактором. Некоторые системы чит-движков состоят только из такого шаблонного GUI.
Обычно шаблон представлен в виде списка помеченных текстовых полей, так что отдельные значения файла можно легко редактировать в соответствующем формате (например, как строку, цвет или десятичное число). Без поддержки шаблонов необходимо найти правильное смещение в файле, где хранится изменяемое значение. Кроме того, редактирование в формате raw hex может потребовать преобразования из шестнадцатеричного в десятичное, учета порядка байтов или других особенностей преобразования типов данных.
Шаблоны могут храниться в виде файлов, таким образом обмениваясь ими между пользователями, и часто публикуются публично на веб-сайте производителя. Большинство, если не все, шестнадцатеричные редакторы определяют свой собственный формат файла шаблона; нет тенденции поддерживать стандарт или даже совместимость между различными форматами в дикой природе.
Расширенные шестнадцатеричные редакторы имеют скриптовые системы, которые позволяют пользователю создавать макроподобные функции в виде последовательности команд пользовательского интерфейса для автоматизации общих задач. Это может использоваться для предоставления скриптов, которые автоматически исправляют файлы (например, мошенничество в игре, моддинг или исправления продукта, предоставляемые сообществом) или для написания более сложных/интеллектуальных шаблонов.
Языки сценариев сильно различаются: зачастую это языки, специфичные для конкретных продуктов, напоминающие пакетные файлы MS-DOS, а также системы, поддерживающие полноценные языки сценариев, такие как Lua или Python .
Некоторые избранные редакторы [ какие? ] имеют систему плагинов , которая позволяет расширять графический интерфейс и добавлять новые функции, обычно загружая динамически подключаемые библиотеки, написанные на языке, совместимом с C.