Bootloader JN5169 содержит уязвимость которая позволяет получить доступ к прошивке микроконтроллера при установленной защите CRP_LEVEL=1. Подробнее здесь https://re-engr.ru/jn5169-fw-lock/
Бинарный файл /wire/mon5169.bin
записывается во FLASH память. В программе реализован командный интерфейс. В качестве канала связи используется USART0.
Скрипт /wire/upload.py
записывает прошивку в свободную память и делает ее активной.
/wire/upload.py
указать корректный номер COM-порта (например port='COM5');/wire/upload.py
. Сообщение Completed указывает на успешное завершение. Ошибки смотреть здесь;Запустить TeraTerm (рекомендуется). Подключиться к COM-порту с параметрами 115200 8n1, no flow control
. Нажать клавишу Enter. Вы увидите приветствие:
Monitor for JN5169
Author: re-engr.ru (Dec 26 2022)
Press key to read:
'f' - flash (512KB)
'w' - firmware
'b' - bootloader
'r' - RAM
'e' - EEPROM
'u' - user data
'o' - OTP
'n' - NIB
Input cmd for:
'.e' - erase EEPROM
'.p' - erase PDM
'.r' - recovery FW
Команды f, w, b, r, e
для передачи данных используют протокол XMODEM-CRC.
'f' - flash (512KB)
- прочитать FLASH память по физическим адресам;'w' - firmware
- прочитать прошивку устройства. Полученный файл имеет необходимый заголовок и может быть записан в другое устройство;'b' - bootloader
- прочитать сегмент с прошивкой бутлоадера;'r' - RAM
- прочитатать всю RAM;'e' - EEPROM
- прочитать всю EEPROM (16320 байт);'u' - user data
- прочитать данные из области User data;'o' - OTP
- прочитать однократно программируемую область памяти;'n' - NIB
- прочитать информацию о zigbee сети в которой находится устройство (PAN ID, Short Addr, MAC Coord, Key). Так же определяется версия SDK;'.e' - erase EEPROM
- физическая очистка памяти 16320 байт EEPROM (все байты 0x00);'.p' - erase PDM
- все блоки памяти (63 блока по 64 байта каждый = 4032 байта) , со своим ID, помечаются как очищенные. Структура "файловой системы" сохраняется;'.r' - recovery FW
- переключиться на прошивку устройства. Сектор памяти с монитором очищается.Выберите память для чтения. Например EEPROM. Нажмите 'e'. Сообщение говорит об ожидании приемника:
e Receiver waiting (XMODEM-CRC)...
В TeraTerm перейдите: File > Transfer > XMODEM > Receive...
Укажите имя файла. В поле "Option" выбрать CRC
и галочку Binary
. Нажмитре "Save", начнется прием данных и сохранения их в файл. Сообщение об успешной передаче данных:
Receiver waiting (XMODEM-CRC)... Done
Ошибки смотреть здесь;