Hex-редакторы vs. malware: Выбираем шестнадцатеричный редактор для анализа бинарников. Hex-редактор HexEdit со специализированным калькулятором

В данной статье будет рассказано о работе в бесплатном hex-редакторе Free Hex Editor Neo , на примере правки файла BkEnd.dll из поставки для корректной работы этой системы с .

1. Немного о hex-редакторах и файлах

Как известно, любой файл, хранясь на жестком диске компьютера, представляет собой последовательность машинных слов — байтов. Байт, в свою очередь, состоит из 8 битов, каждый из которых может принимать значение «0» или «1» , а это означает, что один байт может принимать 2 8 =256 значений в диапазоне от 0 до 255. Число 256 10 , записанное в шестнадцатеричной системе, является круглым трёхзначным числом - 100 16 , т. е. для представления любого числа из диапазона 0-255 потребуется не более 2 разрядов. А это значит, что значение каждого байта очень удобно записать двузначным числом в шестнадцатеричной системе счисления.

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

Кроме того, рядом с таблицей можем увидеть:

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

2. Установка Free Hex Editor Neo

Например, мне нужно в байт со смещением 000d9cca записать значение eb . Для этого я нахожу строку «000d9cco» и столбец «0a», кликаю два раза по нужной ячейке и забиваю новое значение.

Действуя аналогично, я вношу следующие изменения:

  1. Для исправления ошибки «Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия! » изменяем поля:
    по смещению 000d9cca значение 83 меняем на eb
    по смещению 000d9ccb значение e8 меняем на 15
    по смещению 000db130 значение 83 меняем на eb
    по смещению 000db131 значение e8 меняем на 10
  2. Для исправления ошибки «Порядок сортировки, установленный для базы, отличается от системного! »:
    по смещению 0018a79d значение 75 меняем на eb
  3. Для исправления ошибки «Неправильный синтаксис около ключевого слова «TRANSACTION »
    Фразу DUMP TRANSACTION %s WITH TRUNCATE_ONLY , которая находится по смещению 002856B0 заменяем на фразу ALTER DATABASE %s SET RECOVERY SIMPLE
  4. Для исправления ошибки «База данных не может быть открыта в однопользовательском режиме », изменяем поля:
    по смещению 0028549c значение 64 меняем на 6b
    по смещению 0028549d значение 62 меняем на 70

После того, как все изменения сделаны, сохраним файл, нажав «File » — «Save » .

Помогла ли Вам данная статья?

У людей сложилось мнение, что работать с hex редакторами могут лишь профессионалы своего дела и программисты, а для обывателя это нечто ненужное и непонятное. На деле же это удобный инструмент, который определённо пригодится геймерам и простым пользователям, если необходимо устранить ошибку или баг в утилите. По своей сути – редактор является декодером 16-ричного кода. Мы с вами пользуемся для написания чисел 10-ричным, машина для кодирования всей информации использует 2-ичный код, а затем это всё конвертируется в 16-ричный, чтобы пользователю было проще разбираться. На деле редакторы скорее нужны именно новичкам, ведь профессионалы используют мультифункциональные утилиты с возможностью применения сразу нескольких парадигм, если те необходимы им для программирования. Давайте разберёмся, какие калькуляторы и конверторы лучше всего выбирать.

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

HxD Hex Editor

Бесплатный, но всё ещё достаточно мощный редактор для бинарных файлов поддерживающий основные кодировки, вроде ANSI или ASCII, зачастую используется как дополнение к более функциональным калькуляторам и конверторам. Воспринимает файлы без ограничения размеров, а главное – позволяет изменять оперативную память, сразу же записывая любые нововведения на жёсткий диск. А удобный и эргономичный интерфейс, продуманный создателями, лишний раз упрощает работу пользователя. В HxD Hex Editor нет классического нагромождения инструментов и всё устроено за счёт простой системы шторок, уже за это можно скачать hex редактор.

Hex Workshop

Один из простых редакторов, подходящих для компьютеров с любым железом. Именно его небольшая требовательность к ресурсам системы и удобный интерфейс, пусть и с некоторым наплывом объектного дизайна Майкрософт начала 2000-х, сделала программу столь популярной в качестве переносного редактора. Если вам необходимо подгрузить утилиту на флешку, а затем уже на месте разобраться с проблемой в коде, то лучшего решения просто не найти, ведь приложение имеет в том числе и портативную версию с ещё меньшими системными требованиями. А также имеется мобильная версия, и вы можете hex workshop скачать прямо на свой смартфон.

WinHex

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

HexCmp

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

Hex редактор онлайн

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

Конвертер Hex в DEC, BIN и наоборот

В качестве конвертера hex to dec, hex to bin подойдёт любая из вышеописанных утилит. Достаточно загрузить в них файл и выбрать пункт «сохранить как», а там подобрать подходящий формат, и утилита сама преобразует все данные в нужное расширение, после чего вы сможете открыть файл уже подходящего типа.

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

Вывод

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

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

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

Примечание : Как факт, но в свое время для правки стандартных инсталляторов asp.net 1.1 приходилось корректировать двоичный код. К примеру, для того, чтобы сделать один из элементов управления полем для ввода пароля.

В данном обзоре собраны одни из лучших бесплатных hex-редакторов под разные потребности.

Обзор бесплатных шестнадцатеричных редакторов

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

HxD отличный шестнадцатеричный hex-редактор

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

В целом, HxD отлично подойдет тем, кто часто имеет дело с различным двоичным кодом.

Другие возможности и характеристики:

  • Безопасный доступ к файлам, которые используют другие программы
  • Генератор контрольных сумм: Checksum, CRCs, Custom CRC, SHA-1, SHA-512, MD5, ...
  • Экспорт данных в различные форматы
  • Вставка шаблонов кодов
  • Возможность безопасного удаления файлов.
  • Разделение или объединение файлов
  • Различные виды группировок в столбцах (1,2,4,8,16 байт)
  • Подсветка измененных данных
  • Быстрый переход к адресу
  • Поддержка копирования данных буфера обмена из других программ: Visual Studio/Visual C++, WinHex, HexWorkshop, ...
  • Закладки
  • И многое другое...

Hex-редактор Hexplorer аналог HxD с возможностью просмотра изображений, при анализе стеганографии

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

В целом, Hexplorer подойдет не только тем, кто часто редактирует бинарный код, но и тем, кто использует нестандартные способы использовать двоичный код.

Основные возможности и характеристики:

  • Шесть цветовых схем интерфейса под различные задачи.
  • Неограниченная история команд
  • x86 дизассемблер
  • Импорт и экспорт в 20 различных форматов двоичных файлов, включая Intel Hex, Motorola S-Record, стандарт Atmel и т.д.
  • Возможность найти повторяющиеся закономерности в данных
  • Просмотр изображений
  • Фильтрация текста из двоичных данных
  • Поисковой алгоритм Бойера-Мура
  • Быстрая навигация по адресам
  • Позволяет создавать структуры простых типов данных, например, целых чисел или чисел с плавающей точкой
  • Генератор псевдослучайных чисел
  • Позволяет записывать макросы (сценарии) для автоматизации задач

Другие hex-редакторы

Существуют и другие hex-редакторы, которые так же заслуживают внимания и могут пригодится.

Шестнадцатеричный редактор XVI32 простой и удобный

XVI32 - это бесплатный шестнадцатеричный редактор, название которого произошло от римской цифры XVI (16).

  • Поддерживает скрипты для автоматизации задач.
  • Поиск по шаблону
  • ASCII/ANSI
  • Конвертация символов на основе пользовательских определений
  • Запись отдельных блоков в файл
  • И другие возможности...
  • Хранит открытый файл в памяти, так что с большими файлами будут проблемы.
  • Как таковой, нет истории команд. Это означает, что все вносимые изменения вносятся "как есть" и вам придется их записывать или запоминать

Поддерживает Windows 9x/NT/2000/XP/Vista/7

Hex-редактор HexEdit со специализированным калькулятором

HexEdit еще один бесплатный двоичный редактор от MiTeC.

  • Не нужно устанавливать (портативная)
  • Редактор оперативной памяти и диска
  • Специализированный калькулятор
  • Умеет сравнивать файлы
  • Может сбрасывать данные из оперативной памяти на диск (создавать дамп)
  • И другие...
  • Хранит открытые файлы в памяти

Поддерживает Windows 2000 - Windows 7

Cygnus Free простой hex-редактор

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

  • Быстрая и простая в использовании
  • Быстрый поиск и замены
  • Drag & drop
  • И другие возможности...
  • Хранит в оперативной памяти открытый файл со всеми вытекающими проблемами
  • Технической поддержки у бесплатной версии нет
  • Обрезана по функциональности

Поддерживает Windows

Руководство по быстрому выбору (ссылки на скачивание бесплатных шестнадцатеричных hex-редакторов)

HxD

Поддержка множества языков, включая русский. Редактор диска и оперативной памяти. Быстро редактирует файлы больших размеров. Позволяет генерировать контрольные суммы. Умеет сравнивать файлы. Умеет безопасно удалять, склеивать и разделять файлы.
Все изменения немедленно сохраняются на диске. Поэтому, перед редактированием всегда создавайте резервные копии файлов.
http://mh-nexus.de/en/hxd/
http://mh-nexus.de/en/downloads.php?product=HxD
850 KB 1.7.7.0 Unrestricted freeware Windows 95 - 7

Hexplorer

Редактор оперативной памяти и диска. Дополнительные функции, такие как преобразование Фурье. Просмотр изображений. Умеет распознавать заголовки NTFS/FAT, BMP и так далее. Поддерживает макросы для автоматизации задач
Держит открытый файл полностью в памяти, из-за чего большие файлы сложно редактировать. По умолчанию настройки шрифтов и отображения выбраны не очень удачно.

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

Расширение файла

Проблема заключается в огромном количестве типов файлов и поначалу не ясно, каким образом операционная система определяет текстовые, мультимедийные или архивные и прочие типы данных. Как известно, определение файла системой осуществляется с помощью расширения, добавляемого после названия, например, «.exe», «.txt» и другие.

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

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

Дескрипторы

Все файлы можно грубо говоря разделить на две составляющие – заголовок, где содержатся данные идентификации объекта, различные метаданные. Вторая составляющая – «тело» объекта, с помощью которого определяется тип объекта и части заголовка, имеющего название дескриптора. Два популярных дескриптора – ASCII и HEX. Второй вариант анализируется при помощи редакторов, о которых было сказано в начале.

Первый метод ASCII определяется с помощью текстового редактора, например, Notepad++, правда, стоит учесть один момент – некоторые наборы байтов не удастся преобразовать в формат ASCII, а значит рекомендуется применять HEX-редакторы. Запустив любой файлик с помощью такой утилиты, в окне отобразится вид матрицы с последовательностью байтов, где один байт содержится в одной из ячеек. Сведения о дескрипторе обычно находятся в первых 3-х ячейках, редко в большем количестве. Ячейки считаются по горизонтали. Данные, отображённые в ячейках представлены в виде шестнадцатеричном коде.

Расшифровка дескриптора

Чтобы понять, что за данные там находятся, нужно код расшифровать. Для этого понадобится специальный сервис, определяющий форматы файлов, например, open-file.ru . Но есть и другие ресурсы, которые легко найти в интернете. После загрузки файла на сайт произойдет анализ данных, а затем вывод результата. Ниже появится таблица с типом, форматом и описанием файла.

То, что мы разобрали выше – использование HEX-редакторов. Теперь разберемся с кодом ASCII. Данный код можно проанализировать при помощи того же open-file.ru. Другими словами, оба кода проверяются на ресурсе и ничего по сути не нужно вводить.

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

Конечно, есть вариант определения формата. Для анализа будет использоваться несколько строк, а не одна. Тогда какой-то из элементов, находящийся там, по любому будет указывать на тип объекта.

Что еще можно делать с помощью HEX-редактора

Помимо того, что HEX-редакторы помогают проанализировать любой файл, возможно:

  1. работать с дисковыми образами;
  2. редактировать разделы;
  3. изменять содержимое ОЗУ;
  4. изменять виртуального адресного пространства процесса и прочее.

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

Какие HEX-редакторы использовать

Существует очень много программ для редактирования данных, и вот они представлены ниже:

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

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

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

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

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

Утилита 2 в 1, так как имеет функцию сравнения файлов и встроенный HEX-редактор. Иногда может понадобится сравнения данных файлов, для определения отличий и сходств, и анализа структуры объектов различных форматов.

При отличии в двух файлов области на матрице будут окрашены в какой-либо цвет, а само сравнение происходит в считанные секунды. Правда, для анализа подойдут файлы не более 4 GB.

Сама утилита имеет возможности изменения интерфейса. Что значит, пользователь может настроить его под себя. Работа будет происходить быстрее.

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

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

Если какой-то файл не открылся в одном редакторе, значит откроется в этом. Поэтому я и привел здесь список из нескольких утилит. Указанный инструмент отвечает за открытие бинарных файлов. Настроек много, а системные требования доступны для любого компьютера.

Работа в этом редакторе проста, как при печати в Word. Есть опции сравнения файлов, их контрольных сумм и экспорт анализа в различные форматы, например, html.

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

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

После окончания цикла статьей «Лучшие инструменты пентестера» в редакцию пришло немало писем с просьбой сделать подборку hex-редакторов. Интерес, конечно, представляет не возможность редактировать бинарные данные, а дополнительные фичи вроде автоматического распознавания структур данных и дизассемблирования кода. Чтобы сделать обзор, мы выяснили мнения людей, которым чаще других приходится ковыряться с такими инструментами – вирусных аналитиков. И вот что они нам рассказали.

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

McAfee FileInsight

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».

Hex Editor Neo

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

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».

010 Editor

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

Hiew

Hiew, в плане способа распространения, мало чем отличается от своих коллег – это тоже коммерческий продукт, который разработал наш соотечественник Евгений Сусликов. Имеющая долгую историю, программа сильно полюбилась многим специалистам по информационной безопасности. Тому есть вполне очевидные причины – мощные возможности для исследования и редактирования структуры и содержания исполняемых файлов как винды (PE), так и бинарников для Linux (ELF). Другая очень полезная фича для реверсинга – встроенный x86-64 ассемблер и дизассемблер. Последний даже поддерживает инструкции ARM. Не надо говорить, что редактор отлично переваривает большие файлы и позволяет редактировать логические и физические диски. Многие задачи легко автоматизируются за счет системы клавиатурных макросов, скриптов и даже API для разработки расширений (Hiew Extrenal Modules). Но прежде чем рваться в бой, учти – интерфейс Hiew представляет собой DOS-подобное окно, работать с которым с непривычки довольно неудобно. Зато можешь прочувствовать на себе всю прелесть олдскула.

Radare

Radare – это набор бесплатных утилит для Unix-платформы, которые предоставляют классные возможности для редактирования файлов в HEX-режиме. В него входит непосредственно сам hex-редактор (radare) с возможностью открытия локальных и удаленных файлов. Программа анализирует исполняемые файлы различных форматов, как линуксовых (ELF), так и виндовых (PE). Помимо редактирования в пакете Radare есть инструмент для сравнения бинарных файлов (radiff) и встроенный ассемблер/дизассемблер. А лично мне пару раз пригодился инструмент для генерации шеллкодов (rasc). Любые операции легко можно автоматизировать и подогнать под себя за счет скриптовой системы. Из минусов, опять же, можно отметить отсутствие GUI-интерфейса – все действия осуществляются из командной строки, а полноценно работать с утилитами получится, только прочитав документацию. С другой стороны на сайте есть наглядные скринкасты, демонстрирующие как основные моменты, так и маленькие секреты (вроде подключения Python-плагина).

Так что же выбрать?

Мы рассмотрели несколько мощных hex-редакторов, которые включают в себя полезные опции для анализа подозрительных файлов. Из всех продуктов серьезно выделяется FileInsight, который при всем своем функционале (а он действительно впечатляет) остается бесплатным. 010 Editor предоставляет большое количество шаблонов для обработки самых разных файлов, в том числе PDF-документов. Это мега-фишка, которой нельзя пренебрегать. Эти два редактора я использую постоянно; для работы аналитика, пожалуй, они подходят лучше всего. Если говорить о работе под Unix-платформой, то, конечно, нельзя забывать о Radare. Пакет предлагает очень мощные возможности, хотя и сложен в использовании из-за того, что работает из командной строки. Не очень дружелюбен и Hiew, хотя его возможности, безусловно, позволяют выполнять самые разные операции с бинарниками. К тому же, Hiew – это выбор большого количество настоящих профи, а это дорогого стоит (и многое значит). Что касается Hex Editor Neo, то его стоит взять на вооружение, если тебя интересует возможность дизассемблировать x86, x64 и.NET код.