Модификация 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 просмотров
- Вконтакте
- Вконтакте
- Вконтакте
Выбирайте:
а) делить файл на 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?».
Давайте сравним четыре различных редактора и определим наиболее подходящий.

Но сначала предлагаю разобраться, какие задачи решает мастер по чип-тюнингу используя редактор HEX:
- Сравнение двух прошивок.
Например вы купили тюн в комплекте со стоковой прошивкой и вы не уверены, что это именно та версия прошивки, что и в автомобиле, с которым вы сейчас работаете. Сравните сток из купленной прошивки со считанной из вашего автомобиля. - Перенос индивидуальных данных (перенос синхронизации).
Обычно в справке вашего загрузчика написано, какие данные нужно перенести из родной прошивки в тюн. Без HEX-редактора тут не обойтись (либо придется покупать специальные утилиты).
Некоторые загрузчики умеют самостоятельно переносить такие данные при записи.
Любой HEX-редактор хорошо справляется с редактированием прошивок, это его основная функция. - Поиск идентификаторов в файле прошивки.
Бывает необходимо, когда вы не уверены, что у вас сохранились верные данные. Можно заглянуть внутрь файла и найти строки идентификации.
Все HEX-редакторы умеют делать поиск ASCII-строк. - Подготовка прошивки под загрузчик.
Загрузчики могут сохранять данные из блока управления немного по- разному. Под конкретный загрузчик может потребоваться удалить лишние данные, либо наоборот, добавить области, заполненные нулями или FF. - 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-редакторы для Чип-тюнинга. Подойдут ли бесплатные? отключены
