цифровая электроника
вычислительная техника
встраиваемые системы

 



Как выгрузить код в виде Hex-файла из Arduino

Автор: Mike(admin) от 23-05-2022, 03:55

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


Как выгрузить код в виде Hex-файла из Arduino

Итак, в нашем случае плата Arduino обнаруживается на последовательном порту USB COM4.


Как выгрузить код в виде Hex-файла из Arduino

Мы откроем окно командной строки через cmd и введем следующую строку:


avrdude -p atmega328p -c arduino -P com4 -U flash:r:board.hex:i

ПК прочитает программу во флэш-памяти платы Arduino и запишет на компьютер файл с именем «board.hex».


Как выгрузить код в виде Hex-файла из Arduino

Измените :r: на :w: и вы сможете записать шестнадцатеричный файл обратно во флэш-память Arduino. Или загрузить его на другую плату.


avrdude -p atmega328p -c arduino -P com4 -U flash:w:board.hex:i

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


Как выгрузить код в виде Hex-файла из Arduino

Avr-objdump конвертирует исполняемые файлы. Здесь он генерирует дизассемблерный код.


Как выгрузить код в виде Hex-файла из Arduino

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


Как выгрузить код в виде Hex-файла из Arduino

Arduino IDE может предоставить вам шестнадцатеричный файл через меню Sketch-Export скомпилированный двоичный файл. Вы можете создавать исполняемые шестнадцатеричные файлы, которые будут работать на вашем Arduino, из IDE, таких как WinAVR, CodeBlocks, MPLab, AtmelStudio, и из командной строки.




© digitrode.ru


Теги: Arduino




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
  • Группа: Посетители
  • ICQ:
  • Регистрация: 27.08.2023
  • Статус: Пользователь offline
  • Комментариев: 1
  • Публикаций: 0
^
Спасибо за хороший материал, очень пригодилась информация.
Возникла ошибка при считывании из Arduino UNO:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude done. Thank you.
Помогите разобраться где ошибка. AVRDude только установил.