Софт-Архив

Что Такое Hex Редактор img-1

Что Такое Hex Редактор

Рейтинг: 4.0/5.0 (1875 проголосовавших)

Описание

Что такое hex редактор

HEX-редактор. Описание инструмента и обзор наиболее популярных

March 3, 2015

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

Немного теории

Любые данные хранятся в памяти ПК в виде машинных слов, иначе - байтов. Каждый включает в себя 8 битов (двоичных разрядов, которые принимают значение либо "0", либо "1"). Путем математических вычислений можно понять, что в одном байте может быть записано число в диапазоне от 0 до 255. Если перевести 255 в шестнадцатеричную систему исчисления, оно преобразуется в FF. То есть для отображения любого машинного слова очень удобно использовать шестнадцатеричный вид представления. Отсюда и название группы программ - шестнадцатеричный редактор.

Основные элементы программ

Кроме описанной выше матрицы, в интерфейсе представленной группы приложений могут быть и иные средства:

  • Нумерация строк. Обычно располагается в левой части приложения. Показывает смещение первого байта строки относительно начала файла.
  • Сверху зачастую имеется схожая полоса цифр, показывающая смещение байта относительного левого значения в линии. Сложив значения строк, можно получить номер каждого байта.
  • В правой области могут отображаться те же данные, что и в таблице, но в виде текста (кодировку определяет пользователь).
McAfee FileInsight

Этот HEX-редактор абсолютно бесплатен. Работает только в операционных системах семейства Windows. В продукте имеется весь джентльменский набор, такой как просмотр и редактирование файла. При этом программа обладает приятным и удобным интерфейсом.

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

Помимо прочего, этот HEX-редатор предоставляет множество алгоритмов обработки кода для обхода встроенной разработчиками защиты. Прежде всего, нужно обратить внимание на декодирование методов обфускации, таких как add, xor, Base64, shift. Скрипты, с которыми поставляется приложение, ломают подобную криптозащиту с легкостью. Большую часть действий можно автоматизировать, написав простые сценарии на JS или Python. Иногда и создавать ничего нового не требуется, ибо база оных набрана внушительная.

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

Hex Editor Neo

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

Например, пользователю предоставляются возможности декодирования программ, закриптованных общими алгоритмами. Дополнительно к этому есть функции, позволяющие редактировать локальные ресурсы (оперативная память, NTFS-потоки, жесткие диски). Автоматизация процессов реализована с помощью скриптов VBS и JS.

Однако самой главной особенностью программы является дизассемблер, который может работать с x64, x86 и .NET-файлами. Еще одна функция, не предоставляемая конкурентами, - создание патча на основе сравнения двух исполняемых-бинарников. Безусловно впечатляет, но если сравнивать с FileInsight, Neo все равно проигрывает. Однако NEO может работать с файлами большого объема.

HEX-редактор Hiew не имеет бесплатной версии. Разработками занимается команда из России. Начинает свою историю продукт еще со времен 16-битных приложений для DOS и Windows 3.1. Hiew часто используют профессионалы, занимающиеся вопросами компьютерной и информационной безопасности. Причины понятны: весь спектр возможностей для редактирования и просмотра исполняемых бинарных файлов Windows, а также откомпилированных программ Linux (ELF).

Еще одна примечательная функция, помогающая в реверс-инжиниринге, - встроенные в Hiew дизассемблер и ассемблер. Причем они работают, как с x86, так и с x86_64-приложениями, поддерживаются и инструкции процессоров архитектуры ARM. С большими файлами редактор справляется без каких-либо сложностей, позволяет выполнять низкоуровневое изменение данных на физических HDD.

Большое количество действий может быть автоматизировано. Для этого программисты встроили возможность создания скриптов, клавиатурных макросов и API-функций, которые используются для вызова внутренних процедур из внешних приложений. Но до безоговорочной победы на ниве шестнадцатеричных редакторов Hiew все-таки не добрался. Его интерфейс полностью выполнен в стиле DOS, а отрисовкой окон занимается командная строка (или консоль, если говорить о Linux-системах).

Другие статьи, обзоры программ, новости

Что такое hex редактор

Hex-редакторы

В разделе находятся программы для работы (создания, просмотра и редактирования) с двоичными (бинарными) файлами.

Hex-редактор (англ. hex-editor ) — приложение для редактирования данных, в котором данные представлены в «сыром виде» — как последовательность байтов. Он может быть как отдельным самостоятельным приложением, так и компонентом другого, более сложного приложения, такого как дизассемблер, отладчик, интегрированная среда разработки и т. п.

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

  • Наибольшую популярность получили платформы с 8-битным байтом. В таких платформах байт может принимать 2 8 =256 значений в диапазоне от 0 до 255. Число 25610. записанное в шестнадцатеричной системе, является круглым трёхзначным числом — 10016 .
    • То, что это число является трёхзначным, означает, что для представления любого числа в диапазоне 0—255 требуется не более 2 разрядов .
    • То, что это число является круглым, означает, что для представления будут использованы все возможные комбинации цифр, и не останется неиспользованных (например, в случае использования десятичной системы, неиспользованными остаются комбинации, соответствующие числам от 256 до 999).
  • При использовании шестнадцатеричной системы получается, что правая цифра соответствует младшим четырём битам байта, а левая цифра в записи — старшим 4 битам. Поэтому любые операций над 4 битными блоками, выровненными по границе байта, можно упрощённо производить как операции над соответствующими цифрами.
  • 16 — минимальное основание системы счисления, при котором для записи достаточно двух разрядов. Системы с меньшим основанием потребовали бы уже три (и более) разряда, а возможность уложиться в один разряд обеспечила бы только система счисления с основанием 256, которая совершенно неприменима на практике из-за большого числа цифр в ней.

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

Данные, которые отображает и позволяет редактировать Hex-редактор, могут быть:

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

Hex-редактор отображает данные в виде матрицы, каждая ячейка которой соответствует одному байту, записанному в шестнадцатеричной системе счисления в виде двухзначного числа (с ведущим нулём, если он требуется). Количество столбцов матрицы является степенью двойки, чаще всего используются 16 или 8 колонок, иногда 4. Число строк зависит от количества байтов, которые требуется отобразить/отредактировать. В случае использования 16 колонок одна строка соответствует одному параграфу.

Кроме этого, часто используются дополнительные элементы:

  • Слева от матрицы отображается линейка (на рисунке показана синим цветом) из чисел: каждой строчке соответствует число, означающее адрес/смещение первого байта этой строчки. Шаг адресов при этом равен количеству колонок.
  • Сверху от матрицы отображается другая линейка (на рисунке показана зелёным цветом) из чисел: над каждой колонкой отображается смещение байта, стоящего в этой колонке, относительно первого байта соответствующей строчки. Сумма числа, соответствующего i -той строке, и числа, соответствующего j -той колонке является адресом/смещением байта (i;j). стоящего на пересечении взятой строки и взятого столбца.
  • Справа от матрицы могут отображаться те же данные, но в другой интерпретации. Наиболее часто используется альтернативное отображение данных как текста в кодировке ASCII (на рисунке показаны цветом фуксия), при этом байты, значения которых соответствуют непечатным символам, отображаются как точки ( · ). Многие редакторы позволяют выбрать произвольную кодировку для режима отображения текста. Вариант с отображением данных как текста встречается в Hex-редакторах общего назначения. В редакторах же, являющихся частью какой-либо специальной программы, например отладчика, обычно доступны другие режимы, такие как листинга дизассемблирования, подсказок об адресах, и другие специфичные для приложения режимы.

Большинство редакторов позволяют совершать редактирование как в левой половине, так и в правой (при её наличии). При этом совершаемые изменения когерентны.

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

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

Использование

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

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

Поскольку Hex-редактор является достаточно универсальным инструментом, описать все варианты его применения не представляется возможным.

Двоичный (бинарный) файл — в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary ) цифр.

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

Часто двоичными файлами называют исполняемые файлы и сжатые данные, однако так ограничивать это понятие не корректно.

Визуализация

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

Все разделы категории Диски и файлы :

Самые популярные программы

Hex-редакторы скачать бесплатно

Hex-редакторы

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

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

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

Что такое hex редактор

HEX-редакторы

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

Размер дистрибутива: 500 Кбайт

Лицензия: Freeware

Помимо стандартных для такого рода программ возможностей редактирования, XVI32 предлагает подсчет контрольных сумм CRC16 и CRC32, поиск, замену и подсчет числа вхождений байтов в файл, а также исправление ошибки в exe-файлах Borland Pascal 7.0, из-за которой они не работают на современных процессорах. Но наиболее интересная возможность программы - это встроенный скриптовый язык. Например, вы можете записать последовательность действий для преобразования файлов Unix (перевод строки) в Windows (возврат каретки и перевод строки) или для конвертирования значка ico в курсор cur.

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

Набор функций данной программы включает в себя поиск и замену шестнадцатеричных значений и строк, сравнение файлов, частичную загрузку больших файлов, просмотр отдельных секторов на жестком диске (но редактирования в текущей версии нет). Файлы можно шифровать по алгоритмам DES, Blowfish, Twofish, Rijndael, Serpent. Есть также поддержка Drag and Drop в окно редактора и возможность настраивать цветовую схему.

Размер дистрибутива: 300 Кбайт

Лицензия: GPL

Консольное окно этого редактора кажется несовременным, однако по функциональным возможностям Biew опережает большинство своих конкурентов. Кроме шестандацатеричного редактора в него включены дизассемблер Intel x86 (вплоть до Presscott и Athlon 64), Java и Atmel AMR, а также текстовый просмотрщик с подсветкой синтаксиса множества языков программирования и поддержкой русских кодировок.

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

При работе в режиме дизассемблера можно проходить по вызовам CALL и переходам JMP/J*, а также возвращаться в вызывающую функцию. Многие, несомненно, оценят, что программа распознает вызовы функций из DLL и позволяет искать инструкции с применением регулярных выражений. В справке приведена краткая информация о каждой поддерживаемой инструкции процессора и ее двоичном представлении.

В Biew также включены таблица ASCII-кодов, утилита для определения скан-кодов клавиш и информация о системе. Редактор существует в версиях для DOS, OS/2, консоли Windows и Unix/Linux.

Free Hex Editor скачать бесплатно на русском языке для windows 7

Free Hex Editor

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

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

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

Основные возможности и преимущества программы:

  1. Бесплатное распространение;
  2. Качественное редактирование шестнадцатеричных и бинарных файлов;
  3. Встроенные элементы поиска необходимых данных;
  4. Просмотр информации о файлах;
  5. Регулярное обновление;
  6. Высокая производительность;
  7. Встроенная служба подсказок;

Hex-редактор - HxD Hex Editor

Hex-редактор - HxD Hex Editor

Hex-редактор (англ. hex-editor) - приложение для редактирования данных, в котором данные представлены в виде последовательности байтов.

HxD Hex Editor 1.7.7.0 - надежный, бесплатный, но довольно мощный, шестнадцатиричный (hex) редактор бинарных файлов. Работает с файлами неограниченного размера, поддерживает все основные кодировки: ANSI, DOS/IBM-ASCII и EBCDIC, помимо редактирования обычных файлов, способен изменять данные, находящиеся в оперативной памяти, причем HxD напрямую записывает изменения на жесткий диск.

Кроме этого HxD Hex Editor обладает удобным и простым интерфейсом, мощной функцией поиска и замены, многоуровневой системой откатов.

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

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

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

ПРИМЕЧАНИЕ

Рисунки на этой странице не отображаются, но вы можете найти их в книге.

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

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

Написать программу можно и не имея никаких ассемблеров-компиляторов и прочих инструментов – с помощью какого-либо шестнадцатеричного редактора (или hex-редактор или hex editor).

Написание программ с использованием шестнадцатеричного редактора – это не только утомительно, но и НЕБЕЗОПАСНО ДЛЯ КОМПЬЮТЕРА! Так как ошибки в процессе создания программы неизбежны. Но если TASM со товарищи проверяют текст программы на наличие ошибок, то в шестнадцатеричном редакторе проверяющий только один – вы сами. Поэтому, если ошибка останется незамеченной, файл все равно будет создан. И если вы попытаетесь этот «неправильный» файл запустить, то в лучшем случае получите зависание компьютера, а в худшем этот файл может такое натворить – вирусы отдыхают.

И все-таки разбор программ в шестнадцатеричном редакторе весьма полезен. Особенно тем, кто собирается работать с электроникой – ведь микропроцессоры не понимают ни Паскаль ни С++. Хотя и существуют специальные устройства и программы, которые им эти языки «объясняют».

Для начала вам потребуется шестнадцатеричный редактор. Вы можете использовать любой, имеющийся у вас под рукой. Однако я буду использовать уже упоминавшийся McAfee FileInsight v2.1. Этот hex-редактор можно скачать бесплатно. Все описанные ниже действия справедливы именно для этого редактора.

Итак, шестнадцатеричный редактор у вас установлен. Запускаем его. Щелкаем по кнопке ОТКРЫТЬ, находим один из созданных нами СОМ-файлов, например, debug_1.com, и загружаем его в редактор.

Когда файл загружен, в редакторе вы увидите следующее (см. также рис. 1.12): Можете открыть два других созданных нами файла: mycode.com (созданный в emu8086) или ATEST.COM (который мы создали в разделе MASM, TASM и WASM ). Увидите то же самое. Это значит, что все ассемблеры создают одинаковый машинный код. То есть отличия в тексте программ не являются принципиальными – они обусловлены только отличиями самих ассемблеров.

ПРИМЕЧАНИЕ

Если в вашем случае вы видите другую картину, то либо вы открыли другой файл, либо просматриваете его в текстовом режиме. В последнем случае нажмите кнопку View as Hex на панели инструментов (см. рис. 1.12).

Что же означают эти числа?

С нулями все понятно – это первая ячейка памяти, в которую записано число В4. Это число потом будет записано в адрес 0100h (для СОМ-файла). В строке должно быть 16 чисел, каждое из которых состоит из двух цифр. Числа записываются в шестнадцатеричной форме. Но у нас программа маленькая – всего 8 байт, поэтому и чисел у нас 8.

Ну а что же такое B4? Это команда – «Ввести значение в регистр АН». А какое значение вводим? Правильно: 02 (следующее в строке число).

Идем дальше. Команда B2 – «ввести значение в регистр DL». Какое значение? Конечно 41. А теперь вспомним, что мы увидели в программе Debug, введя команду t: Видите в последней строке B241? Знакомое сочетание? Это код команды MOV DL, 41.

Идем дальше. CD – код вызова прерывания. Какого? Смотрим следующее число. Итак, CD 21 – это код команды INT 21. Аналогично для CD 20.

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

Ну а теперь напишем и создадим нашу изученную вдоль и поперек программу без ассемблеров и компоновщиков. Открываем редактор, создаём новый файл (для этого щёлкаем кнопку NEW на панели инструментов), затем щёлкаем кнопку View as Hex и вводим данные: Сохраняем файл под именем, например, hex_1.com. Все. Программа готова. Теперь ее можно запустить и в очередной раз полюбоваться своим творением. Результат будет тот же, что и во всех предыдущих случаях.

И ещё один приятный сюрприз от редактора McAfee FileInsight v2.1 – он имеет свой дизассемблер! Если вы загрузите в редактор исполняемый файл, а в левом нижнем углу выберите вкладку DISASSEMBLY, то сможете посмотреть исходный код загруженной программы на языке ассемблера (рис. 1.12).

Зачем вообще нужны шестнадцатеричные редакторы и дизассемблеры? Ведь это так сложно. Да, это непросто. Однако хакеры так не думают. Именно с помощью шестнадцатеричных редакторов и дизассемблеров они ломают программы. Находят в коде нужные им места и исправляют их в соответствии со своими хакерскими капризами.

Конечно, мы не хакеры. Ломать программы не будем. Однако дизассемблеры и шестнадцатеричные редакторы весьма полезны и законопослушными программистам. Они используются, например, для отладки, для изучения машинных кодов и т.п. Например, вы знаете, как выглядит команда на языке ассемблера, но хотите узнать её машинный код. Если нет документации, то выход только один – шестнадцатеричный редактор и/или дизассемблер. Следует, однако, учесть, что не все команды умещаются в машинный код из двух чисел. Некоторые команды довольно сложные и требуют большего количества чисел для представления в машинных кодах.

WinHex (HEX-редактор)

Flashback Редакторы 16-ый редактор. hex editor. HEX-редактор. WinHex. X-Ways. шестнадцатеричный редактор

Последняя версия: 16.1 SR-1

Автор: X-Ways

Если вы и могли слышать о каком-либо шестнадцатеричном редакторе, так это об WinHex, ибо данному программному продукту уже ни один год (если быть точнее, то уже 16 лет), а за это время он успел многим себя зарекомендовать. Например, корпорация Microsoft является лицензионным пользователем данного HEX-редактора.

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

3) быстрый поиск с использованием различных фильтров.

4) работа с файлами крупнее 4 гигабайт.

5) многое другое.

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