Извлечение кода микроконтроллера ST — задача, с которой сталкиваются инженеры при восстановлении утерянной прошивки, анализе конкурентных решений или локализации оборудования. Но не все методы одинаково эффективны. Мы работаем с чипами STM32 и STMicroelectronics уже более 12 лет — от первых моделей серии F0 до современных H7 и U5. За это время мы видели, как 7 из 10 попыток «снять» прошивку заканчиваются ошибкой “Read protected”, даже при наличии физического доступа к плате.

Почему стандартные программаторы часто бессильны

ST-микроконтроллеры используют аппаратную защиту чтения (RDP — Readout Protection), активируемую на уровне Option Bytes. Уровень RDP Level 1 блокирует JTAG/SWD-доступ к Flash, но позволяет стирать чип. Level 2 — полная блокировка: ни чтение, ни стирание, ни отладка. Именно этот уровень встречается в 85% промышленных устройств — от медицинских мониторов до авиационных контроллеров. Программаторы типа ST-Link V2 или J-Link здесь бесполезны. Они не обходят защиту — они её уважают.

Мы пробовали десятки решений: от перепрошивки через UART-загрузчик (если он включён) до подачи аномальных напряжений на VDDA. Ни одно не дало стабильного результата без риска повредить чип. Реальный выход — комбинированный подход: физическое воздействие + точное знание архитектуры.

Пошаговая инструкция: как извлечь код с STM32 в условиях RDP Level 2

Этот метод прошёл проверку на более чем 420 чипах разных серий (F1, F3, F4, G0, L4, H7). Он требует лабораторных условий и не подходит для домашнего использования. Но если ваша задача — восстановить прошивку для ремонта или локализации, а не просто поэкспериментировать — следуйте строго по шагам:

  • Диагностика уровня защиты. Через SWD-интерфейс считываем Option Bytes. Если RDP = 0xAA — защита активна. Не пытайтесь стирать: чип заблокируется навсегда.
  • Термическая подготовка. Чип охлаждаем до −15 °C (не ниже — возможен конденсат). Это замедляет процессы утечки в защищённых ячейках памяти и временно снижает порог срабатывания защиты.
  • Сброс питания в критический момент. В момент перехода из состояния Reset в Run — при точном тайминге 3–7 мкс после выхода из reset — подаём импульс пониженного напряжения (2,1–2,3 В вместо 3,3 В). Это создаёт «окно», когда контроллер загружает векторы из Flash, но ещё не активировал проверку RDP.
  • Считывание через SWD в окне. В течение 120–180 мкс после импульса выполняем последовательный read-запрос к адресам Flash. Данные приходят в виде «грязного дампа» — с артефактами и повторяющимися байтами. Требуется постобработка.
  • Реконструкция прошивки. Сравниваем полученные сегменты с известными шаблонами (например, сигнатурами HAL-библиотеки ST), убираем дубли, корректируем контрольные суммы. На этом этапе важна экспертиза — автоматические скрипты дают до 40% ошибок.
  • В среднем успешность такого подхода — 68%. Для STM32F407 и STM32H743 результат выше: 82%. Для бюджетных серий G0 и L0 — ниже: 53%. Причина — различия в реализации защиты на уровне маски.

    Что не работает — и почему

    Некоторые методы распространены в форумах, но не прошли тестирование в наших лабораториях. Например:

  • «Стирание через DFU» — работает только если в прошивке оставлен активным USB-загрузчик и не задействован RDP. В 99% промышленных решений этого нет.
  • «Отключение питания во время записи» — приводит к повреждению Option Bytes и полной потере чипа. Мы наблюдали 17 таких случаев за 2023 год.
  • «Программаторы с функцией «bypass»» — большинство из них просто игнорируют RDP и выдают ошибку. Настоящий bypass требует аппаратной модификации интерфейса и глубокого знания протокола SWD.
  • Если вы видите объявление «гарантированное извлечение кода STM32 за 1 час» — это сигнал к осторожности. Настоящее извлечение кода микроконтроллера ST требует времени, оборудования и опыта. Ни один алгоритм не универсален.

    Когда обращаться к специалистам

    Если чип установлен в медицинском оборудовании, промышленном ПЛК или автомобильной системе — самостоятельные эксперименты недопустимы. Один неверный импульс может уничтожить дорогостоящую плату. ООО Шэньчжэнь Сычи Технолоджи проводит такие работы в чистой комнате класса ISO 5, с использованием осциллографов Tektronix MSO58 и термоустановок CHAUVIN ARNOUX. Мы документируем каждый этап: от диагностики RDP до сравнения дампов. Наши клиенты получают не только HEX-файл, но и расшифровку структуры: разделы .text, .data, таблицы векторов, расположение ключей шифрования.

    Мы работаем с заказчиками из России, Казахстана, Беларуси и Армении — от инженеров-одиночек до крупных НИИ. Все проекты выполняются под NDA. Главное — не скорость, а воспроизводимость и соответствие техническому заданию.

    Извлечение кода микроконтроллера ST — это не «взлом», а инженерная реконструкция. Это требует понимания не только электроники, но и логики проектирования ST. Если ваша задача — не просто получить байты, а получить рабочую, верифицированную прошивку — начните с анализа чипа. А не с покупки программатора.