Как отредактировать hex файл прошивки

от admin

Модификация HEX-файлов для контроллеров AVR.

Есть прошивка для контроллера AVR (8-bit) в формате Intel HEX. В ней есть два байта в виде констант.

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

Вот что есть: сделал сначала прошивку с номерами 0x77 0x88 (это два отдельный байта). Затем с 0xAA 0xAA и сделал diff, чтобы было видно что изменилось в файле:

тут видно где они спрятались: перед ними теперь стоят 0 а затем 3, например для 0x77 это 0737.

Вторая странность это наличие 69F4 0485 между этими двумя цыфирьками.

Вопрос: почему так отображается в HEX-файле, и можно ли сделать чтобы я видел в HEX-файле тупо 7788, чтобы было легко найти?

Как можно отредактировать hex файл?

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

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

  • Вопрос задан более трёх лет назад
  • 1579 просмотров
  • Facebook
  • Вконтакте
  • Twitter
  • Facebook
  • Вконтакте
  • Twitter

  • Facebook
  • Вконтакте
  • Twitter

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

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

Как отредактировать hex файл прошивки

Только в ассемблер, кстати, и можно. По крайней мере, однозначно.

Софтины, выполняющие такую операцию, называются дизассемблерами.

Только листинг будет плохо читаем за счет конструкций типа jmp PC+0x0D, out 0x32,0x04 и т.п. Так что геморроя избежать не удастся.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

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

Ведущий производитель электрического оборудования компания MORNSUN выпустила серию источников питания на DIN-рейку LI100-20BxxPR3 c выходами на 12, 15, 24 и 48 В. ИП позиционируются для умных домов, а так же используются в составе оборудования для промышленной автоматизации, различных производственных машин, рельсовых систем транспортировки и другого оборудования, работающего в условиях неблагоприятной окружающей среды.

Так это, Студия — всего лишь IDE. Она полюбому запускает соответствующий модуль дизассемблера.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.

Компания MEAN WELL продолжает активное развитие номенклатуры, осваивая новые направления и обновляя существующую продукцию с учетом возрастающих требований. В настоящий момент в Компэл представлено множество недавно вышедших новинок MEAN WELL.
MEAN WELL выпустил ряд таких новинок как мощные высоковольтные управляемые источники питания, DC/DC-преобразователи со сверхшироким входом (с креплением на DIN-рейку и на шасси), полностью обновил линейку зарядных устройств (ЗУ), DC/AC-преобразователей (инверторов) и ИБП для охранно-пожарных систем. Кроме того, выпущены специальные источники питания с выходным напряжением в виде ШИМ для светодиодных лент и модулей управляемых по DALI2 и 0…10 В, а также другая продукция.

ЧИП ТЮНИНГ

HEX-редакторы для Чип-тюнинга. Подойдут ли бесплатные?

Наши партнеры и ученики периодически спрашивают: «Какой HEX-редактор посоветуете? Стоит ли платить за WinHEX?».
Давайте сравним четыре различных редактора и определим наиболее подходящий.

Читать:
Код ошибки 34 xx билайн что это

Но сначала предлагаю разобраться, какие задачи решает мастер по чип-тюнингу используя редактор HEX:

  1. Сравнение двух прошивок.
    Например вы купили тюн в комплекте со стоковой прошивкой и вы не уверены, что это именно та версия прошивки, что и в автомобиле, с которым вы сейчас работаете. Сравните сток из купленной прошивки со считанной из вашего автомобиля.
  2. Перенос индивидуальных данных (перенос синхронизации).
    Обычно в справке вашего загрузчика написано, какие данные нужно перенести из родной прошивки в тюн. Без HEX-редактора тут не обойтись (либо придется покупать специальные утилиты).
    Некоторые загрузчики умеют самостоятельно переносить такие данные при записи.
    Любой HEX-редактор хорошо справляется с редактированием прошивок, это его основная функция.
  3. Поиск идентификаторов в файле прошивки.
    Бывает необходимо, когда вы не уверены, что у вас сохранились верные данные. Можно заглянуть внутрь файла и найти строки идентификации.
    Все HEX-редакторы умеют делать поиск ASCII-строк.
  4. Подготовка прошивки под загрузчик.
    Загрузчики могут сохранять данные из блока управления немного по- разному. Под конкретный загрузчик может потребоваться удалить лишние данные, либо наоборот, добавить области, заполненные нулями или FF.
  5. HEX-редактор также позволит вам сравнить два файла прошивки и определить, содержится ли в них одна и та же программа, либо это совершенно разные версии софтов. Модификация одной версии ПО будет отличаться незначительно, может быть десятками или сотнями байт.

HxD Hex Editor

Наш первый претендент — программа от немецких разработчиков. Скачать HxD можно совершенно бесплатно по ссылке: https://mh-nexus.de.

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

Из явных недостатков — очень простые функции сравнения прошивок. Нет синхронного просмотра двух прошивок. Нет анализа и карты различий.

FlexHEX

Программа бесплатна для домашнего использования, скачать можно на сайте разработчика по ссылке: http://www.flexhex.com

FlexHEX — это полнофункциональный редактор, сложно сказать, каких функций ему не хватает.

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

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

Из явных недостатков программы удалось выявить только один — приложение иногда неожиданно закрывается без всяких причин.

С учетом бесплатности FlexHEX для частного мастера — рекомендуем как минимум попробовать.

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

010 Editor

Единственный мультиплатформенный редактор, который удалось найти и попробовать. Существуют версии для Windows, Linux и MacOS.

Скачать демо-версию можно по ссылке: https://www.sweetscape.com/
Коммерческая версия обойдется в 129.95$, а для домашнего использования — 49.95$.

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

Никаких явных недостатков программы обнаружено не было — поэтому однозначно наши рекомендации.

WinHEX

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

Скачать дистрибутив можно по ссылке: http://www.winhex.com/winhex/

Без регистрации программа проработала около месяца — потом перестала запускаться. Лицензию можно приобрести примерно за 2600 рублей — цена указана в вашей местной валюте, поэтому периодически немного изменяется.

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

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

Что же в итоге выбрать конкретно вам?

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

Остались вопросы — задавайте их в комментариях.

Напишите, каким редактором пользуетесь вы. Нужно ли выпустить обучающие видео по работе с HEX-редакторами?

Чтобы заказать модификацию вашей прошивки — переходите по ссылке.

Комментарии к записи HEX-редакторы для Чип-тюнинга. Подойдут ли бесплатные? отключены

Похожие публикации