Софт-Архив

Hex редакторы

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

Описание

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-редакторы

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

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.

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-системах).

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

Free Hex Editor

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

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

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

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

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

Возможности Hex-редакторов

    Теоретическая часть: 4 Общая информация: 4
      Понятие hex -редактора 4 Интерфейс 5 Использование 7
    Обзор hex -редакторов: 8
      McAfee FileInsight 8 Hex Editor Neo 11 FlexHex 1 3 010 Editor 1 6
    Практическая часть 19

Заключение 2 1

Список литературы 22

Цель работы: изучить возможности hex -редакторов, сравнить их возможности.

Актуальность: в настоящее время hex -редакторы используются в основном профессиональными программистами, которые работают с языками низкого уровня. Hex -редакторы вместе с дизассемблерами активно применяются хакерами для написания вирусов, взлома программ и создания « crack ’ов». Очень распространены вирусы, которые шифруют на компьютере пользователя файлы с расширением. doc ( docx ). pdf. txt и другие. С помощью этих же средств программисты, которые пишут антивирусы, борются с вышеуказанными проблемами. Они создают программы, которые способны расшифровать те файлы, которые были повреждены.

    Теоретическая часть

1.1Общая информация

1.1.1 Понятие hex -редактора

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

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

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

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

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

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

1.1.2 Интерфейс

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

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

Слева от матрицы отображается линейка (на рисунке показана синим цветом) из чисел: каждой строчке соответствует число, означающее адрес/смещение первого байта этой строчки. Шаг адресов при этом равен количеству колонок.

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

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

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

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

Рис 1. Пример интерфейса hex-редактора

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

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

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

Ассемблер – это язык низкого уровня, но все-таки язык. Написать программу на нем можно и не имея никаких ассмблеров-компиляторов и прочих инструментов – с помощью hex-редактора, однако написание программ с использованием шестнадцатеричного редактора - это дело утомительное и небезопасное! Ошибки в процессе создания программы неизбежны. Если TASM проверяет текст программы на наличие ошибок, то в hex-редакторе проверяющий всего один – сам программист. Даже если ошибка останется незамеченной, то файл все равно будет создан. При попытке запуска такого «неправильного» файла в лучшем случае получится зависание компьютера, а в худшем случае такой файл может повредить систему сильнее любого вируса.

Но разбор программ в hex-редакторе весьма полезен. Особенно тем, кто собирается работать с электроникой, так как микропроцессоры не понимают языки высокого уровня, хотя и существуют специальные программы и устройства, которые им эти языки «объясняют».

Любой hex-редактор позволяет исследовать и модифицировать файл на низком уровне, оперируя с битами и байтами. Содержание файла представляется в шестнадцатеричной форме. Это базовый функционал. Однако некоторые редакторы предлагают пользователям намного большее, позволяя разобраться, собственно, что есть что в том непонятном наборе символов, который появляется при открытия файла. Для этого автоматически извлекаются ASCII и Unicode строки, осуществляется поиск известных паттернов, выполняется распознавание основных структур данных и многое другое. Шестнадцатеричных редакторов довольно много, но если мы решили рассмотреть их в контексте исследования образцов вредоносных программ, то легко выделить некоторые из них. Лишь немногие оказываются реально полезными для анализа зловредного кода и исследования зараженных документов (скажем, PDF).

1.2 Обзор hex -редакторов

1.2.1 McAfee FileInstight

FileInsight – это бесплатный hex-редактор для Windows от компании McAfee Labs. Продукт, само собой, выполняет весь стандартный функционал, сопутствующий подобному софту, предлагая удобный интерфейс для просмотра и редактирования файлов в шестнадцатеричном и текстовом режимах. Но это лишь капля в море, если посмотреть на весь его функционал. Начать стоит с того, что FileInsight способен анализировать структуру исполняемых бинарных файлов для Windows (PE файлов), а также OLE-объектов Microsoft Office. Мало этого, пользователю предлагается встроенный x86 дизассемблер. Достаточно выбрать часть файла, которую хочешь просмотреть в виде читаемого кода, и FileInsight покажет этот фрагмент как листинг ассемблерных инструкций. Дизассемблер особенно полезен, когда ищешь Шелл-код в зловредных файлах. Среди других опций, которые придутся по душе пользователю – возможность импортировать объявления структур. Для этого программе достаточно указать заголовочный файл с объявлениями вроде:

struct ANIHeader <

DWORD cbSizeOf; // Num bytes in AniHeader

DWORD cFrames; // Number of unique Icons

DWORD cSteps; // Number of Blits

В этом случае программа сама будет анализировать подобные конструкции. Впрочем, и по умолчанию предлагается немало интуитивных алгоритмов для обработки кода. Речь, прежде всего, идет о декодировании многих методов обфускации (xor, add, shift, Base64 и т.д.) – встроенные скрипты обходят подобную криптозащиту без особых проблем. Тут надо заметить, что в качестве объекта исследования необязательно должен быть бинарный файл, это может быть и обычная веб-страница, вызывающая подозрения. Многие действия программа позволяет автоматизировать с помощью простых сценариев на JavaScript или модулей на Python, которых написано уже немало. Увы, при всех достоинствах, у FileInsight есть и серьезный недостаток, выражающийся в невозможности обрабатывать большие файлы. К примеру, если попытаться открыть данной программой файл размером в 400-500 Мб, вылетает ошибка «Failed to open document».

FileInsight обладает интуитивно понятным графическим интерфейсом. После запуска программы мы видим следующее окно:

Рис.2. Стартовое окно McAfee FileInsight.

Если пользователь первый раз работает с hex-редактором, то FileInsight просто создан для него. Специально для новичков нижнем левом углу экрана появляются подсказки, которые сильно облегчают жизнь пользователю.

Для работы с файлом нужно воспользоваться панелью вкладок. Во вкладке «Home» расположены инструменты для создания (New), открытия/закрытия (Open & Close), сохранения файла (Save). Во вкладке «Edit» находятся методы, которые нужны непосредственно для редактирования файла: копирование и вставка (Copy & Paste), отмена и возврат действия (Undo & Redo), вырезка и выделение (Cut & Select). Вкладка «Search» упрощает поиск как внутри файла (Find), так и в папках (Find in folders). Если мы хотим подключить какие-либо плагины, написанные на «Python», то вкладка «Plugins» поможет нам это осуществить. Во вкладке «Windows» мы сможем слегка изменить расположение окон в нашей программе, настроить интерфейс под себя.

Рис.3 Открытый в McAfee FileInsight файл с расширением .obj.

При работе с файлами очень полезно окно, которое располагает в левом нижнем углу экрана. Оно позволяет смотреть представление байта в dec- и hex-форматах, просматривать ASCII и Unicode отображения строки, при этом тут же можно воспользоваться дизассемблером или калькулятором.

Рис. 4. Вспомогательное окно редактора McAfee FileInsight.

    Hex Editor Neo

Существует две версии этого шестнадцатеричного редактора от компании HDD Software – простая бесплатная и продвинутая коммерческая версия. Freeware-вариант – это добротный, но мало чем примечательный HEX-редактор, имеющий классный настраиваемый интерфейс с поддержкой разных цветовых схем. А вот профессиональная версия Hex Editor Neo предоставляет несколько полезных опций, которые могут быть крайне полезны при анализе бинарных файлов. К примеру, пользователь получает возможность декодирования кода, закриптованного с помощью наиболее общих алгоритмов. Помимо этого появляется возможность просмотра и редактирования локальных ресурсов типа NTFS-потоков, локальных дисков, памяти процесса, а также оперативной памяти. В самой полной версии появляется и поддержка скриптового языка, позволяющая автоматизировать многие процессы с помощью сценариев на VBScript и JavaScript. Но самый главный плюс в том, что к вашим услугам предоставляется встроенный дизассемблер, который работает и с x86, и с x64, и с .NET-бинарными файлами! Еще одна особенность – быстрое создание патчей, основанное на сравнении двух бинарных файлов. Звучит впечатляюще, но лучше ли он, чем FileInsight? Скорее, нет. FileInsight в целом выглядит более функционально. С другой стороны, любая, даже бесплатная версия Hex Editor Neo отлично работает даже с очень большими файлами и позволяет искать ASCII и Unicode-строки. Дизассемблер здесь не ограничивается одной лишь x86 платформой, а встроенный редактор ресурсов очень удобен.

Рис. 5. Стартовое окно редактора Hex Editor Neo.

Интерфейс данного редактора выглядит довольно просто. В нем, как и в предыдущем редакторе, на панель управления, расположенную вверху окна приложения, вынесены все основные инструменты для работы с файлом: создание, открытие, сохранение файла, поиск внутри файла, поиск по каталогам и т.д. Все эти инструменты можно так же найти во вкладках «File» и «Edit». Вкладка «History» хранит в себе полную историю работы с файлом; если у нас есть история всех изменений, то можно легко найти ошибку, если вдруг она где-то была допущена. Так же у данного редактора существует очень подробный «Help», который находится в одноименной вкладке.

Рис.6. Открытый в редакторе Hex Editor Neo файл с расширение .obj.

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

Рис. 7. Окно для выбора языка интерфейса.

Коммерческая версия Hex Editor Neo предлагает очень большой функционал. Я исследовал бесплатную версию, возможности которой сильно уступают возможностям бесплатного McAfee FileInsight. Но если пользователю нужно открыть простой бинарный файл и не ломать голову над иностранным описанием, то Hex Editor Neo подойдет как нельзя кстати.

1.2.3 FlexHex

FlexHex – это мощный коммерческий hex-редактор от компании Heaventools Software, который включает многие из функций, доступных в Hex Editor Neo. Единственное, чего здесь нет – это, пожалуй, поддержка скриптов. Зато этот полнофункциональный редактор одинаково хорошо обрабатывает бинарные файлы, OLE-файлы, физические диски и альтернативные NTFS-потоки. Последнее особенно важно, потому что FlexHex позволяет редактировать те данные, которые другие редакторы могут даже не увидеть. К тому же сразу чувствуется ориентированность на работу с большими массивами информации: какой бы размер ни был у файла, навигация по нему осуществляется без каких-либо осложнений и зависаний. Для еще большего удобства работает система удобных закладок. При этом FlexHex непрерывно ведет историю всех операций – можно отменить любое действие, просто выбрав его из списка изменений (undo-list не ограничен)! В FlexHex поддерживаются все необходимые операции с бинарными данными, поиск ASCII и Unicode-строк. Если необходимо обрабатывать структуру с заранее известным форматом, задать ее параметры не составит труда с помощью специальных инструментов. В результате получаем отличный hex-редактор, но все-таки сильно уступающий тому же FileInsight. Единственная примечательная опция – это обработка OLE-файлов, но и тут есть проблемы. Несколько раз при попытке открыть зараженный OLE, программа вылетала с ошибкой «The docfile has been corrupted».

При каждом запуске данного редактора появляется окно с подсказкой, которое можно отключить, сняв галочку внизу данного окна. Для пользователя-новичка подобное окно подсказка может оказаться очень полезным, так как с помощью кнопки «Next Tip» можно получить следующую подсказку.

Рис. 8. Окно с подсказкой в редакторе FlexHex.

Сам по себе интерфейс программы выполнен в стиле минимализма. Принципиального отличия графического интерфейса данного редактора от интерфейсов уже рассмотренных редакторов нет. Тут все те же функциональные панели, что и в McAfee FileInsight и Hex Editor Neo. Но два больших плюса выделить все же стоит: удобная система флагов и закладок, которая сильно облегчает поиск, и параллельное ведение истории изменений с возможностью отматывать действия, если вдруг была допущена ошибка.

Рис. 9. Стартовое окно редактора FlexHex.

Единственное, что очень не понравилось в данном редакторе – это поиск файла, который часто работает очень медленно. Файлы в данном редакторе иногда открываются медленнее, чем те же файлы в рассмотренных выше редакторах.

Рис. 10. Открытый в редакторе FlexHex файл с расширением .obj.

1.2.4 010 Editor

010 Editor – известный коммерческий продукт, разработанный SweetScape Software. Если сравнивать его с предыдущими тремя инструментами, то он умеет все: поддерживает работу с очень большими файлами, предоставляет классные возможности по оперированию с данными, позволяет редактировать локальные ресурсы, имеет систему скриптинга для автоматизации рутинных действий (более 140 различных функций к вашим услугам). А еще у 010 Editor есть изюминка, уникальная особенность. Редактор обходит всех благодаря возможности анализировать различные форматы файлов, используя собственную библиотеку шаблонов (так называемые Binary Templates). Вот здесь ему нет равных. Над шаблонами работают множество энтузиастов по всему миру, создавая различные структуры форматов и данных. В результате процесс навигации по различным форматам файлов становится прозрачным и понятным. Это касается, в том числе, и обработки бинарных файлов для Windows (PE файлам), файлов-ярлычков Windows (LNK), Zip-архивов, файлов Java-классов и многого другого. Всю прелесть этой особенности многие смогли осознать, когда известный специалист по безопасности Дидье Стивенс создал для 010 Editor шаблон для анализа PDF-файлов. Вкупе с другими утилитами это серьезно упростило анализ зараженных PDF-документов, которые последние полгода не перестают удивлять количеством мест, откуда можно эксплуатировать программу-читалку. Добавляем сюда классный инструмент для сравнения бинарных файлов, калькулятор с C-подобным синтаксисом, конвертирование данных между ASCII, EBCDIC, Unicode-форматами, и получаем очень привлекательный инструмент с уникальными возможностями.

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

Рис. 11. Окно с выбором варианта продолжения работы.

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

Рис. 12. Стартовое окно редактора 010 Editor.

Стартовое окно содержит в себе еще и дополнительные подсказки, ссылки на обновления, новости и записи, связанные с редактором.

Для удобства пользователя создана система закладок, которая позволяет переключаться от файла к файлу при одновременной работе. Окно в левой части позволяет видеть, в какой директории находится тот или иной открытый пользователем файл.

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

Рис. 13. Открытый в редакторе 010 Editor файл с расширение. obj.

    Практическая часть

Целью моей курсовой работы было изучение возможностей hex -редакторов, их сравнение. В данной курсовой работе был проведен сравнительный четырех анализ известных hex -редакторов. Я рассматривал редакторы с точки зрения простого пользователя, который первый раз знакомится с данным инструментом, поэтому для изучения брал только редакторы с графическим интерфейсом. Все результаты моих исследований сведены в сравнительную таблицу (см. Таблицу 1), которая отображает достоинства и недостатки тех или иных редакторов.

Для пользователя, который только открывает для себя hex -редакторы, лучше всего подойдет McAfee FileInsight. так как он является бесплатным и обладает великолепным функционалом. Пользователю, который уже знаком с подобными редакторами и хочет получить максимальный функциональный набор, придется выложить кругленькую сумму за Hex Editor Neo. FlexHex или 010 Editor.