Лучший редактор бинарных файлов для Windows

редактор PE файлов

В этой статье мы будем сравнивать и выбирать лучший редактор бинарных файлов для Windows. Для этой статьи я отобрал только те редакторы PE-файлов, которые работают в этой ОС. Если какой-то из инструментов поддерживает другие операционные системы и их исполняемые файлы (например, ELF), то это только плюс, но в данном случае для нас особого значения не имеет.

Мы будем выбирать редакторы на основе разумных и понятных факторов: функциональность, цена, удобство использования и частота обновления. Совсем старые решения, позволяющие редактировать бинарники для MS-DOS или Windows 9x мы рассматривать не будем. Если какой-то из редакторов распространяется платно, то мы протестируем ознакомительную версией и отдельно отметим, какие функции в ней доступны. Но самый главный критерий будет состоять во взломе настоящего крэкми.

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

PE-Explorer

редактор pe файлов pe explorer

Первой утилитой будет в нашем обзоре лучших редакторов исполняемых файлов идет довольно популярный редактор PE-Explorer. В отличие от своего собрата Resource Tuner, он умеет редактировать не только ресурсы приложения, но и код. Несмотря на свой почтенный возраст, отлично работает даже в Windows 10. К сожалению, PE-Explorer может работать только с 32-битными файлами и при попытке открыть 64-битный бинарный файл сообщает об ошибке.

Утилита может похвастаться богатым функционалом: отображает все элементы заголовка РЕ, определяет, к каким DLL происходит обращение, предсказывает поведение программ и логику взаимодействия с другими модулями и даже открывает запакованные UPX, UPack или NSPack файлы. Кроме того, PE-Explorer позволяет просматривать и редактировать секции PE-файла, анализировать содержимое таблиц импорта и экспорта и проверять наличие и целостность цифровой подписи. В качестве большого бонуса тут присутствует полноценный дизассемблер.

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

РЕКОМЕНДУЕМ:
Взлом приложений для Андроид с помощью отладчика

После запуска редактора сразу же откроем наше подопытное приложение. PE-Explorer первым делом выводит информацию о заголовке PE-файла. Для получения сведений об остальных разделах достаточно покликать кнопки на панели инструментов. Нажимаем пиктограмму Disassembler и открываем окно для выбора поддерживаемых инструкций: SSE, SSE2 и прочее. Указываем нужные и начинаем процесс нажатием кнопочки Start Now.

В открывшемся окне большую часть занимает область с дизассемблерным листингом, чуть ниже располагается шестнадцатеричный дамп. Если в заголовке нижней панели выбрать вкладку «Strings», то отобразятся все строки в исследуемом приложении. Так что поиском можно найти и эталонный пароль. Однако для этого потребовалось бы перебрать весь внушительных список доступных строк, так что отложим этот вариант до худших времен.

Так как мы с помощью отладчика нашли адрес инструкции, которая отвечает за ход выполнения программы, то попробуем проверить этот адрес в PE-Explorer: нажимаем Ctrl-F (или «Search → Find») и вводим адрес для поиска: 402801.

редактор pe файлов pe explorer

Если честно, то я немного разочарован результатом дизассемблирования. Даже отладчик в этом месте показывает мне инструкцию test, а здесь я вижу лишь начало ее шестнадцатеричного кода: 0х85. При этом я не могу редактировать код! Зачем мне все эти возможности, если редактор не позволяет делать самую базовую вещь?

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

Разработчик: Heaventools Software
Сайт: http://www.heaventools.ru/pe-explorer.htm
Дата выхода последней версии: Октябрь, 2009
Стоимость: $129 – персональная лицензия

FlexHex

редактор hex flexhex

Думаю, нужно дать разработчику ещё один шанс, поэтому рассмотрим другой инструмент HeavenTools Software — hex-редактор FlexHex. Это инструмент для редактирования любых файлов, процессов или устройств в двоичном формате, ASCII и UNICODE. По словам разработчиков, редактор умеет работать с файлами просто гигантского размера – 8 эксабайт (см. также Как открыть большой файл). Кроме того, он поддерживает множество типов данных: байты, слова, двойные слова, восьмибитовые слова, различные десятичные значения со знаком и без, 32- и 64-битовые целые.

Сложные типы данных тут могут быть определены самим пользователем — это структуры, объединения, массивы, перечисления, строки и их сочетания. Обещают прямое редактирование любых значений, в том числе: шестнадцатеричных, строковых, изменение областей памяти и типизированных данных. Поддерживаются битовые операции (NOT, AND, OR и XOR над блоками данных) и, конечно же, арифметические операции: сложение, вычитание, умножение, деление и взятие остатка.

Но главная фишка FlexHex – это возможность сравнения файлов целиком или отдельными блоками. При этом использование карт сравнения делает процесс более интуитивным и наглядным.

Все это хорошо, но как утилита справится со взломом – нашей основной задачей? Отсутствие дизассемблера сразу намекает нам, что придется работать в hex-кодах. Запустим FlexHex и откроем с его помощью наш крякми.

Первым делом попробуем найти смещение 402801. Кликаем «Navigate → Go To» и в списке слева выбираем пункт Address, а в поле «Enter address» вводим значение для поиска. Убеждаемся, что включен режим Hex и нажимаем кнопку «Go To». Однако результат поиска выносит нас далеко за границы приложения. Обратите внимание, что последние читаемые символы находятся по смещению 0x3659F0. Если напрячь память, то вспоминается, что в заголовке РЕ базовый адрес (или адрес загрузки модуля) прописан как 0x400000. А здесь он даже не учитывается!

редактор hex flexhex

Ладно, «пойдем другим путем». Строго говоря, FlexHex не понимает формат РЕ и потому его нельзя признать полноценным PE-редактором. Поэтому нам ничего не остается, как исправить байтики. Из того же отладчика, где мы нашли проверяющую пароли инструкцию, возьмем уникальную последовательность байт: 85 C0 74 3C 68. Она покрывает ассемблерные команды:

Я выбрал такую длинную последовательность, чтобы не было ложных срабатываний. За ключевым байтом 0x74 тут скрывается ассемблерная инструкция JZ. Чтобы сделать из нее JNZ, достаточно переписать как 0x75. В итоге мы получим программу, кушающую любые пароли, кроме эталонного.

РЕКОМЕНДУЕМ:
Как писать читы для игр

С помощью «Search → Find» открываем окно и указываем в качестве типа для поиска «Hex Bytes» и направление. В поле ввода указываем нашу последовательность байт: 85 C0 74 3C 68. Есть совпадение! Теперь ставим курсор на 74, нажимаем Delete и вписываем на этом месте 75. Сохраняем результат и закрываем редактор. Проверь «пропатченное» приложение, оно теперь должно работать значительно лучше.

В целом, я бы не сказал, что этот редактор отличается значительным удобством и соответствует нюансам работы благородного крекера. Поэтому отдавать за него $60 кровных лично я бы не стал.

Разработчик: Heaventools Software
Сайт: http://www.heaventools.ru/flexhex-hex-editor.htm
Дата выхода последней версии: Июль, 2018
Стоимость: $59,95

Radare2

редактор бинарных файлов radare2

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

Radare2 придерживается философии Unix: выполнять одну задачу и делать это хорошо. Из-за этого он состоит из нескольких узконаправленных утилит, объединенных под одной крышей с помощью GUI-обертки Cutter, написанной на Qt. Во фреймворке присутствует отладчик с поддержкой большого количества архитектур: x86-64, ARM, MIPS и многих других.

Для Radare2 можно писать скрипты на разных языках: Python, Go и некоторых других. Кроме Windows, Linux и macOS фреймворк работает на Android и iOS (хотя на последнюю придется предварительно накатить джейлбрейк). Очень неплохо для программы, изначально рассчитанной только на Unix-окружение!

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

редактор бинарных файлов radare2

Щелкая по кнопкам, расположенным внизу окна, мы можем переходить по вкладкам: дизассемблер, шестнадцатеричный дамп и прочее. Это вселяет обнадеживающие чувства. Вероятно, одним из способов мы все-таки взломаем наш крякмис. Введем адрес 0x402801 в строку для поиска вверху окна.

Увы, результаты вновь выносят нас в недоступную область. Попытка произвести поиск по последовательности байтов 85 C0 74 3C 68 тоже ни к чему хорошему не привела. Запрос во вкладке «Search» в обоих случаях не увенчался положительным результатом.

Не исключаю, что это я недостаточно разобрался с Cutter и Radare2, но успешный взлом с помощью этих инструментов мне не удался. Однако нужно помнить, что Radare2 — это все-таки не простой редактор, а полноценный дизассемблер, и он предназначен для несколько других задач.

Разработчик: pancake
Сайт: https://radare.org/
Дата выхода последней версии: Октябрь, 2018
Стоимость: лицензия LGPL

PE-bear

По многочисленным просьбам пользователей и после четырех лет застоя автор возобновила разработку этого PE-редактора в 2018-м году. Репозиторий можете найти на GitHub. Имеется графический интерфейс, тут он тоже создан на основе библиотеки Qt. В наличии встроенный дизассемблер. Также стоит отметить очень подробную и наглядную сводку информации о заголовке РЕ и прочих вещах. Можно открыть несколько бинарников вместе, при этом включается удобное окно для их сравнения.

редактор pe файлов PE-bear

Между тем данная утилита совсем не подходит для проведения взлома: отсутствуют средства поиска и редактирования двоичных файлов. Но канал на YouTube мне понравился, поэтому я все-таки решил включить утилиту в список.

Разработчик: hasherezade
Сайт: https://hshrzd.wordpress.com/pe-bear/
Дата выхода последней версии: январь, 2019
Стоимость: freeware

Hiew

Должен признать, к этому моменту меня уже стали огорчать имеющиеся на рынке PE-редакторы. Ни один из рассмотренных не поддерживает переход по смещению относительно базового адреса загрузки модуля. Кроме того, хочется все же редактировать ассемблерный код и использовать поиск для экономии сил и времени. Посмотрим, сможет ли все это предложить утилита Hiew, первая версия которой была выпущена еще в начале девяностых годов прошлого века.

Изначально программа была бесплатной, так что с сайта разработчика до сих пор можно свободно скачать версию 6.50. Но сделать это стоит разве что из ностальгических соображений, ведь реальной пользы от этого мало. Версия предназначена для MS-DOS, и в Windows 10 работать откажется.

При этом стоит отметить, что утилита Hiew не использует сторонние библиотеки, SDK или API, все написано на нативном уровне. Иными словами, разработчик не опирается на возможности операционной системы. Именно поэтому до версии 7.0 программа кроме Windows работала в системах MS-DOS и OS/2. Однако поддержка последних была прекращена из-за очевидной нецелесообразности.

редактор бинарных файлов hiew

Между тем Hiew в актуальной версии 8.67 – это настоящий швейцарский нож: он обладает поистине широчайшей функциональностью, способной ответить практически на любой запрос пользователя. Среди ключевых возможностей редактора стоит отметить: просмотр и редактирование файлов в текстовом, шестнадцатиричном виде и в режиме дизассемблера, встроенный х86-64 ассемблер и дизассемблер, мощный 64-битный калькулятор и поддержка исполняемых файлов самых разнообразных форматов.

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

РЕКОМЕНДУЕМ:
Способы обхода защиты и взлома программ

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

Хорошо, заломим наш крякмис с помощью Hiew — чисто для демонстрации. Запустим hiew32.exe и в открывшемся окне выберем наш файл – passCompare35.exe. Откроем дизассемблер клавишей F4 и в появившемся окне выберем режим Decode. Обратите внимание на смещение, оно начинается с 400000 – базового адреса модуля. Перейдем по адресу 0x402801 через нажатие на F5. Окажемся точно в нужном месте, на сверяющей инструкции test, которую перепишем на xor. Снова Enter для фиксации изменений и F9 для сброса данных на диск. Готово, просто и приятно!

Разработчик: Евгений Сусликов
Сайт: http://www.hiew.ru/
Дата выхода последней версии: Февраль, 2019
Стоимость: 555 руб.

010 Editor

редактор исполняемых файлов

Еще один платный редактор с ознакомительной версией на целый месяц. Стоит ли он своих денег? На самом деле, набор функций весьма внушительный. Тут есть расширенная поддержка бинарных шаблонов, в том числе поиск по заданной структуре или конструкциям языков высокого уровня (таких как: if, for или while). Можно проводить побайтовое сравнение двух файлов и строить гистограммы для наглядного представления данных.

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

редактор исполняемых файлов 010 Editor

Снова открываем наш файл passCompare35.exe и ищем нужный кусок кода. Напомню, магические цифры выглядят как: 85 С0 74 3С 68. Заменяем число посередине и не забываем сбросить изменения на диск. Проверяем пропатченную программу и убеждаемся, что все работает так, как нужно именно нам. Следующий!

Разработчик: SweetScape Software
Сайт: https://www.sweetscape.com
Дата выхода последней версии: декабрь, 2018
Стоимость: $49,95

XVI32

hex редактор

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

hex редактор XVI32

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

Разработчик: Christian Maas
Сайт: http://www.chmaas.handshake.de/
Дата выхода последней версии: июнь, 2012
Стоимость: freeware

Заключение

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

РЕКОМЕНДУЕМ:
Реверс Андроид приложений

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий