re-engr / jn5169-monitor

Read flash when CRP_LEVEL=1
11 stars 3 forks source link

JN5169-monitor

Bootloader JN5169 содержит уязвимость которая позволяет получить доступ к прошивке микроконтроллера при установленной защите CRP_LEVEL=1. Подробнее здесь https://re-engr.ru/jn5169-fw-lock/

Бинарный файл /wire/mon5169.bin записывается во FLASH память. В программе реализован командный интерфейс. В качестве канала связи используется USART0.
Скрипт /wire/upload.py записывает прошивку в свободную память и делает ее активной.

История версий

Скрипт

Загрузка

  1. Запустить JN5169 с низким уровнем на контакте /BOOT (пин 22, DO1);
  2. В скрипте /wire/upload.py указать корректный номер COM-порта (например port='COM5');
  3. Выполнить скрипт /wire/upload.py. Сообщение Completed указывает на успешное завершение. Ошибки смотреть здесь;
  4. Запустить JN5169 с высоким уровнем на контакте /BOOT (пин 22, DO1);

Управление

Запустить 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.

Команды чтения

Команды исполнения

XMODEM

Выберите память для чтения. Например EEPROM. Нажмите 'e'. Сообщение говорит об ожидании приемника:

e Receiver waiting (XMODEM-CRC)...

В TeraTerm перейдите: File > Transfer > XMODEM > Receive... Укажите имя файла. В поле "Option" выбрать CRC и галочку Binary. Нажмитре "Save", начнется прием данных и сохранения их в файл. Сообщение об успешной передаче данных:

Receiver waiting (XMODEM-CRC)... Done

Ошибки смотреть здесь;

Ошибки

Скрипт

Монитор