Hex-редактор (англ. hex-editor), шестнадцатеричный редактор — приложение для редактирования данных, в котором данные представлены в «сыром виде» — как последовательность байтов. Он может быть как отдельным самостоятельным приложением, так и компонентом другого, более сложного приложения, такого как дизассемблер, отладчик, интегрированная среда разработки и т. п.
Для представления значения байтов используется шестнадцатеричная (англ. hexadecimal) система счисления, что и отражено в названии редактора. Выбор шестнадцатеричной системы счисления обусловлен следующими факторами:
Данные, которые отображает и позволяет редактировать Hex-редактор, могут быть:
Hex-редактор отображает данные в виде матрицы, каждая ячейка которой соответствует одному байту, записанному в шестнадцатеричной системе счисления в виде двухзначного числа (с ведущим нулём, если он требуется). Количество столбцов матрицы является степенью двойки, чаще всего используются 16 или 8 колонок, иногда 4. Число строк зависит от количества байтов, которые требуется отобразить/отредактировать. В случае использования 16 колонок одна строка соответствует одному параграфу.
Кроме этого, часто используются дополнительные элементы:
i
-той строке, и числа, соответствующего j
-той колонке является адресом/смещением байта (i;j)
, стоящего на пересечении взятой строки и взятого столбца.·
). Многие редакторы позволяют выбрать произвольную кодировку для режима отображения текста. Вариант с отображением данных как текста встречается в Hex-редакторах общего назначения. В редакторах же, являющихся частью какой-либо специальной программы, например отладчика, обычно доступны другие режимы, такие как листинга дизассемблирования, подсказок об адресах, и другие специфичные для приложения режимы.Большинство редакторов позволяют совершать редактирование как в левой половине, так и в правой (при её наличии). При этом совершаемые изменения когерентны[1].
Простые редакторы позволяют только менять значение выбранных байтов по отдельности. Продвинутые — редактировать совокупности байтов как цельные блоки[2], выполнять поиск по последовательностям или шаблонам последовательностей.
Hex-редакторы для редактирования образов дисков могут включать в себя функции по восстановлению повреждённой файловой системы или случайно удалённых файлов.
Hex-редакторы используются для редактирования не-текстовых данных, когда специализированной программы для редактирования имеющихся данных либо нет, либо её применение неоправданно или нежелательно. Примером может служить внесение изменений в скомпилированную программу без перекомпиляции последней. Так, с помощью Hex-редактора можно изменить значения жестко вшитых в код программы строковых и числовых констант, если правильно определить их расположение.
Если Hex-редактор имеет функции дизассемблера или дизассемблирование целевой программы уже было проведено с помощью другого инструмента заранее, и известно смещение, можно внести изменение непосредственно в код программы и изменить её поведение. Этим пользуются при исправлении ошибок, взломе, читерстве, ручном твикинге.
Поскольку Hex-редактор является достаточно универсальным инструментом, описать все варианты его применения не представляется возможным.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .