Перейти к содержанию

Сливаем дамп флешки STM32 стандартными инструментами

Как считать прошивку контроллера который не был залочен? До очень просто.

Подключаем плату через st-link и запускаем программу STM32CubeProgrammer или ST-LINK Utility.

Обе программы имеют вполне годный консольный help и документацию, в которой он, по сути, дублируется.

STM32CubeProgrammer. Сохраняет прошивку в bin, hex, srec

STM32_Programmer_CLI.exe -c port=SWD -r 0x08000000 0x20000 firmware.srec

В port выбирается используемый интерфейс, далее идет адрес старта прошивки (0x08000000), размер прошивки (0x20000) и название файла куда будет сохранена прошивка.

ST-LINK Utility. Сохраняет прошивку в файл.

st-link_cli.exe -c -Dump 0x08000000 0x20000 firmware

Ключ -c выполняет подключение, ключ -Dump переводит программу ST-LINK в режим чтения прошивки, далее идет адрес старта прошивки (0x08000000), размер прошивки (0x20000) и название файла куда будет сохранена прошивка.

Сравнить слитый файл с прошивкой на микроконтроллере можно через следующую команду в ST-LINK Utility. Выведет первый не совпавший адрес.

st-link_cli.exe -c -CmpFile firmware.srec 0x08000000

Конечно, удобнее сравнивать файл прошивки с дампом в GUI. Он выводит два окошка с файлами где красным подсвечены не совпавшие секции.

В ST-LINK Utility:

В STM32CubeProgrammer:

Comment

programel