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

У людей сложилось мнение, что работать с 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 – станет лучшим выбором как для новичков, так и для профессионалов.

Доброго всем дня.

Многие почему-то считают, что работа с hex-редакторами - это удел профессионалов и начинающим пользователям соваться в них не следует. Но, на мой взгляд, если иметь хотя бы базовые навыки работы с ПК, и представлять за чем вам нужен hex-редактор - то почему нет?!

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

1) Free Hex Editor Neo

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

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

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

2) WinHex

Этот редактор, к сожалению, условно-бесплатен, зато он - один из самых универсальных, поддерживает кучу разнообразных опций и возможностей (часть из которых сложно найти у конкурентов).

В режиме редактора дисков позволяет работать с: HDD, дискетками, флешками, DVD, ZIP-дисками и пр. Поддерживает файловые системы: NTFS, FAT16, FAT32, CDFS.

Не могу не отметить удобные инструменты для анализа: кроме основного окна, можно подключить дополнительные с различными калькуляторами, инструментами для поиска и анализирования структуры файла. В общем, подойдет как новичкам, так и опытным пользователям. Программа поддерживает русский язык (выбрать следующее меню: Help / Setup / Russian ).

WinHex, кроме своих самых обычных функций (которые поддерживают аналогичные программы), позволяет производить «клонирование» дисков и удалять информацию с них так, чтобы ее уже никто и никогда не смог восстановить!

3) HxD Hex Editor

Бесплатный и довольно мощный редактор бинарных файлов. Поддерживает все основные кодировки (ANSI, DOS/IBM-ASCII и EBCDIC), файлы практически любого размера (кстати, редактор позволяет кроме файлов редактировать оперативную память, напрямую записывать изменения на винчестер!).

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

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

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

4) HexCmp

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

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

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

ПРИМЕЧАНИЕ
Рисунки на этой странице не отображаются, но вы можете найти их в книге.

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

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

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

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

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

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

Когда файл загружен, в редакторе вы увидите следующее (см. также рис. 1.12):

00000000 B4 02 B2 41 CD 21 CD 20 ...A.!. Можете открыть два других созданных нами файла: mycode.com (созданный в emu8086) или ATEST.COM (который мы создали в разделе ). Увидите то же самое. Это значит, что все ассемблеры создают одинаковый машинный код. То есть отличия в тексте программ не являются принципиальными – они обусловлены только отличиями самих ассемблеров.

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

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

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

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

AX=0200 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0B72 IP=0102 NV UP EI PL NZ NA PO NC 0B72:0102 B241 MOV DL,41 Видите в последней строке B241? Знакомое сочетание? Это код команды MOV DL, 41.

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

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

00000000 B4 02 B2 41 CD 21 CD 20 Сохраняем файл под именем, например, hex_1.com. Все. Программа готова. Теперь ее можно запустить и в очередной раз полюбоваться своим творением. Результат будет тот же, что и во всех предыдущих случаях.

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

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

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

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

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

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

Скачать бесплатно полную русскую версию HxD Hex Editor с официального сайта без регистрации и смс.

Системные требования

  • Поддерживаемые ОС: Windows 8.1, Vista, 10, 8, 7, XP
  • Разрядность: 64 bit, x86, 32 bit

В данной статье будет рассказано о работе в бесплатном 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 » .

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

Ремонт