Stm32 с чего начать изучение...

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18591
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

Господа-профессионалы, вопрос на засыпку: существует ли способ распространять бинарник прошивки без возможности его несанкционированного использования?
Сформулировал загадочно, поясняю.
Есть желание отправить прошивку по электронке. Но есть риск, что её прошьют в неоговоренное количество МК. МК у "заказчика", естественно, куплен самостоятельно, т.е. к серийнику привязать или там загрузчик с шифрованием использовать я не могу.
Но, (а вдруг?!), есть какие-то другие способы, мне, как дремучему, просто неизвестные?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
linux_rulezz
Вымогатель припоя
Сообщения: 622
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди шариатской республики
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение linux_rulezz »

ARV писал(а): Пн июн 01, 2026 09:09:49распространять бинарник прошивки без возможности его несанкционированного использования?
Нет, естественно!
Ну и да: какой смысл вообще бинарник кому-то пересылать? Выкладываешь код на гитхабе - нехай сами качают, собирают и прошивают…
// правда, я больше уверен, что просто поржут над "кодом" ☺
Windows must die!
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18591
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

linux_rulezz писал(а): Пн июн 01, 2026 09:41:16 Нет, естественно!
Вы явно поспешили. После того, как я написал вопрос, мне пришла в голову идея "активации" прошивки определенным кодом. Например, так: прошивка берёт уникальный номер чипа, генерирует какой-то хеш и выдаёт пользователю, который присылает мне его, а я ему в ответ высылаю новый хеш на основе этого, он вводит его в устройство, и так оно "активируется". Тонкости алгоритмов хеширования и способов активации можно оставить за кадром. Разве этот метод не даст 99% гарантии, что прошивка налево не уйдет?
linux_rulezz писал(а): Пн июн 01, 2026 09:41:16 Выкладываешь код на гитхабе - нехай сами качают, собирают и прошивают…
Любопытно, что сказал бы на такое бухгалтер, если бы 1С распространялась по этому принципу... Хотя, судя по вашему нику, проблемы пользователей вас никогда не интересуют в принципе, линукс же не для пользователя, а для программиста...
linux_rulezz писал(а): Пн июн 01, 2026 09:41:16 я больше уверен, что просто поржут над "кодом"
Ну вот, а говорили
linux_rulezz писал(а): Пн июн 01, 2026 09:41:16 какой смысл вообще бинарник кому-то пересылать?
Сами всё знаете, а спрашиваете...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
JackSmith
Потрогал лапой паяльник
Сообщения: 333
Зарегистрирован: Ср мар 09, 2016 08:07:41

Re: Stm32 с чего начать изучение...

Сообщение JackSmith »

Но, (а вдруг?!), есть какие-то другие способы, мне, как дремучему, просто неизвестные?
сложно. прошивка должна цепляться за какие-то фиксированные параметры устройства вроде UID, и быть устойчивой к декомпилированию, в том числе с помощью ИИ.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
linux_rulezz
Вымогатель припоя
Сообщения: 622
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди шариатской республики
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение linux_rulezz »

ARV писал(а): Пн июн 01, 2026 09:54:04пришла в голову идея "активации" прошивки определенным кодом
Как следует из моего ника, я совершенно против анального огораживания.
Но любители оного обычно делают так: пишут собственный бутлоадер (который может вполне свободно распространяться) и шифруют прошивку. Сначала на МК пишется сам бутлоадер. Далее, скажем, при нажатии определенной кнопки (или снятии перемычки) на старте МК "представляется" парой устройств: собственно DFU + CDC. По CDC пользователь получает некий хэш (из серийного номера МК и чего-либо еще), отсылает этот хэш огораживателю, получает другой хэш, который скармливает через CDC (и он сохраняется во флеш-памяти МК). Далее обычный dfu-util заливает прошивку (но сам бутлоадер проводит операции по дешифровке и проверки корректности сохраненного кода).

Я все свое распространяю по лицензии GPLv3, так что такой дичью мне заниматься не нужно. Да и вообще, сохранять в секрете прошивку имеет смысл лишь в двух случаях: а) это - военщина (например, прошивка "супер-пупер" дрона), б) это - очень дорогое и востребованное изделие, на разработку которого потрачено очень много денег (соответственно, если конкурент получит прошивку, то сможет значительно дешевле делать копии).
Если изделие производится малым тиражом и никому нафиг не нужно, то нет и смысла прошивку защищать.

Судя по тому, что ты пользуешься калокубом, да и вообще "на ВЫ" с STM32, тебе нет вообще никакого смысла париться насчет защиты: в а) тебя не возьмут, в б) ты тоже никак не вольешься…
Windows must die!
Реклама
Rapra
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

ARV писал(а): Пн июн 01, 2026 09:09:49 существует ли способ распространять бинарник прошивки без возможности его
А что, ИИ на этот счет не дает разве ответ?
Принцип давно известный и пришел из мира"больших компутеров" - лицензионный ключ. Но чтобы усложнить взлом бинарника, его самого нужно зашифровать.
То есть, устройство поставляется с прошитым в МК программным загрузчиком в защищенных секторах флеша. Этотзагрузчик содержит алгоритм дешифровки прошивки, которая присылается пользователю. Соответственно, при первом запуске устройства с прошивкой запрашивается лицензионный ключ, который генерится на основе серийного номера устройства или микроконтроллера. В отправляете покупателю сгенерированный ответ, он его вводит, и этот ответ заносится в защищённую ячейку памяти и в дальнейшем не запрашивается.

С другой стороны... Что делают большинство начинающих программистов после написания первого hello world? Правильно - интересуются, как можно защитить свою прошивку от посягательства других, таких же начинающих?
Как правило, прошивки таких начинающих не представляют собой ничего ценного, они значимы лишь для того, кто их написал.
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25291
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Stm32 с чего начать изучение...

Сообщение КРАМ »

ARV писал(а): Пн июн 01, 2026 09:54:04 мне пришла в голову идея "активации" прошивки определенным кодом. Например, так...
Это фуфло, Роман...
Открытая прошивка достаточно легко декомпилируется на предмет нахождения точки активации с первого же раза обычным отладчиком.
С другой стороны сама бизнес-модель отношений с заказчиком в корне порочна. Либо деньги берут за проект, либо входят в долю бизнеса с помощью договора.
Rapra
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

Повысить взломомтойкость прошивки можно ее шифрованием. Имею ввиду распространяемый бинарник
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18591
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

КРАМ писал(а): Пн июн 01, 2026 11:56:50 Либо деньги берут за проект, либо входят в долю бизнеса с помощью договора.
Для организаций это приемлемо, но тем не менее никак не защищает разработку от "утекания" на сторону. Для работ, выполняемых частным образом - неприемлемо от слова совсем, т.к. при упоминании слова "договор" в ответ раздастся конское ржание. Увы, но это так...
КРАМ писал(а): Пн июн 01, 2026 11:56:50 Открытая прошивка достаточно легко декомпилируется на предмет нахождения точки активации с первого же раза обычным отладчиком
Любая защита взламывается, вопрос лишь в цене взлома. Против профессионального хакера не только мой вариант защиты бессилен, но и любой иной. Однако, такому хакеру надо заплатить. И если заплатить ему будет дороже, чем купить у меня "ключ" - маловероятно, что кто-то будет это делать... На то и расчет.
Возвращаясь к примеру с 1С - бухгалтер сам ломать не будет, не та квалификация. Флешку-ключ воткнуть - это его уровень.
Rapra писал(а): Пн июн 01, 2026 11:48:28 устройство поставляется с прошитым в МК программным загрузчиком в защищенных секторах флеша
Я написал ранее, что такой вариант исключен - "заказчик" покупает МК и паяет устройство сам, моя лишь прошивка.
Rapra писал(а): Пн июн 01, 2026 11:48:28 Как правило, прошивки таких начинающих не представляют собой ничего ценного, они значимы лишь для того, кто их написал
Если за это кто-то платит, значит, это имеет ценность не только для меня - логично?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18591
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

linux_rulezz писал(а): Пн июн 01, 2026 11:27:02 тебе нет вообще никакого смысла париться насчет защиты: в а) тебя не возьмут, в б) ты тоже никак не вольешься…
Воздержитесь от анализа моих возможностей, личных качеств и т.п. не имеющих отношения к сути аспектов, и сосредоточтесь при написании ответа на вещах, реально имеющих смысл контексте обсуждения. Если, кроме слов о моих личных качествах/способностях, вам сказать нечего - молчите вообще.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25291
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Stm32 с чего начать изучение...

Сообщение КРАМ »

ARV писал(а): Пн июн 01, 2026 12:17:12 Для работ, выполняемых частным образом - неприемлемо от слова совсем
Естественно, потому что это неотличимо от найма.
Для заключения договора нужно сначала стать ИП и пропускать деньги через счет этого ИП. Со всеми вытекающими из этого платежами в казну.
Для частного разработчика есть только один путь - получить деньги за саму разработку и забыть про тираж у заказчика.
Rapra
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

ARV писал(а): Пн июн 01, 2026 12:17:12 н - "заказчик" покупает МК и паяет устройство сам, моя лишь прошивка.
В таком случае ничего не поможет. Участок клда с проверкой ключа обнаруживается довольно быстро и обезвреживается. Я даже сам такое не раз проделывал
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18591
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

А если рассмотреть ситуацию под другим углом?
Тот, кто получает мою прошивку - некий "радиолюбитель", который дружит с паяльником, знает, что такое программатор и вполне способен прошить по инструкции МК. Но сам разобраться в программировании не может (не хочет) - иначе зачем бы он обращался ко мне?!
Соответственно, сделав некий вариант "защиты", я уже не позволю ему тупо штамповать без меня устройства.
Но у него наверняка найдется приятель, который тоже слышал про HAL, Куб и даже сам делал "хелловорд", и к которому он явно обратится с просьбой взломать мою "защиту". Предполагать, что это будет настоящий хакер, достаточно несерьёзно, т.к. даже я сам не взялся бы за взлом чужой прошивки, даже если речь шла бы об AVR (на котором я собаку съел), и даже за деньги. Поэтому следует только осложнить этому "энтузиасту" жизнь настолько, чтобы он прекратил попытки.
Для этого я вижу массу путей... Но, как вы все в курсе, я ленивый, и вместо перебора придуманных мной вариантов, хотел поинтересоваться, решал ли кто подобные задачи и как именно.

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

P.S. У меня лично есть успешный опыт взлома скринсейвера под Windows (правда, это было давно, еще до эпохи 64-бит, да и скринсейвер был защищен весьма примитивно - место вычислилось поиском строки "invalid key"), и неудачный опыт взлома протокола ИК-обмена между идентификатором коровы и считывателем на входе в коровник (в коде содержалась CRC, но какой именно кусок данных и каким именно методом она обрабатывала, выяснить не вышло). Так же есть опыт самописного бутлоадера с шифрованием для AVR, который успешно используется и по сей день, правда я с этого ничего не имею по условию "договора", как КРАМ и писал.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25291
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Stm32 с чего начать изучение...

Сообщение КРАМ »

ARV писал(а): Пн июн 01, 2026 12:55:26 Судя по всему, никто неичего такого не решал, ограничиваясь обычным теоретизированием.
Не совсем так.
У нас была необходимость старую версию изделия осовременить почти (насколько это позволяли аппаратные ресурсы) до новой версии.
Был написан открытый загрузчик, где код был нерегулярно растворен в таблице шифрования. Код application был зашифрован кадрами, где псевдослучайным образом располагались ключи к таблице шифрования. Сначала происходила прошивка бутлоадера. Затем софт на ПК через интерфейс (RS422) грузил основную прошивку в буферный флеш. Затем бут проверял и при отсутствии устанавливал защиту от чтения и лишь после этого начинал дешифрование буфрного флеша с разворачиванием основного исполняемого кода по месту его штатного расположения во флеше.
Я понимал, что люди, которые будут иметь оба файла и будут апдейтить изделие не смогут вскрыть бут - слишком дорого для них. А конечному заказчику это было по барабану.
Но контроля за количеством таких апдейтов не было. Для компании бизнес состоял не в количестве, а в сохранении клиентуры, которой мы экономили деньги на старых объектах.
Rapra
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

Любые навороты разбиваются об запуск под отладчиком и обнаружение точки первого запроса серийника. Далее, этот запрос просто перепрыгивается прямым указанием адреса перехода, а все последующие запросы серийника отслеживаются бряками и так же обезвреживаются даже без перекомпиляции кода, простой заменой байтов. Работы - от получаса до нескольких часов. Доступно для программиста средней квалификации. Можно даже поручить какому-нить программисту, объяснив что делать и пусть он прогонит код под отладчиком на поиск всех запросов ключа.
ARV писал(а): Пн июн 01, 2026 12:55:26 Судя по всему, никто нечего такого не решал, ограничиваясь обычным теоретизированием
Почему же? Я как раз взламывал подобные защиты, даже не имея большой хакерской квалификации. И именно поэтому сам такой вариант защиты не применяю. Потому что он бессмысленен, дает лишь ложное ощущение защищенности.
ARV писал(а): Пн июн 01, 2026 12:55:26 который тоже слышал про HAL, Куб и даже сам делал "хелловорд"
Хал и Куб тут ваапще не нужен. Нужно всего лишь под отладчиком найти место запроса ключа и обойти его, изменив пару байт в прошивке.
Последний раз редактировалось Rapra Пн июн 01, 2026 13:19:24, всего редактировалось 1 раз.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25291
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Stm32 с чего начать изучение...

Сообщение КРАМ »

Rapra писал(а): Пн июн 01, 2026 13:10:30 Любые навороты разбиваются об запуск под отладчиком
Я же про это и сказал. Все было сделано с пониманием контингента занимающимся апдейтом, специфичностью рынка изделия и самой цели апдейта. Защищался лишь маленький кусок алгоритма основной прошивки. То есть сначала нужно было получить мотивацию к такому взлому. И даже получив открытый хекс, нужно было еще разобрать сам этот внутренний алгоритм, расположение и структура которого совершенно неизвестны взломщику. Проще самому написать свой код.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18591
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

КРАМ писал(а): Пн июн 01, 2026 13:08:30 У нас была необходимость...
Если б у меня была возможность реализовать загрузчик, я б не стал мутить воду тут... Но увы, вся фишка в том, что почтовые расходы на рассылку заранее прошитого МК (без разницы - рабочей прошивкой или только бутлоадером) сожрут весь смысл такой работы... Я ж не о промышленных сериях говорю, а о штучных частных заказах.
Rapra писал(а): Пн июн 01, 2026 13:10:30 Любые навороты разбиваются об запуск под отладчиком и обнаружение точки первого запроса серийника
Не в виде опровержения, но в качестве любопытства: как быстро у вас бы пропало желание ковыряться, если бы я сделал "проверку серийника" в десятке мест и, в случае его несовпадения, тупо бы затирал случайную страницу FLASH? Что скажете насчет классики: отслеживать наличие отладчика и портить прошивку при подозрениях?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18591
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение ARV »

Rapra писал(а): Пн июн 01, 2026 13:10:30 Хал и Куб тут ваапще не нужен.
это было сказано для уточнения уровня потенциального взломщика :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Rapra
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Пн фев 16, 2026 17:30:02

Re: Stm32 с чего начать изучение...

Сообщение Rapra »

Потенциальный взломщик может вообще никогда не слышать об Хале и Кубе, но взломать вашу защиту за полчаса.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25291
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Stm32 с чего начать изучение...

Сообщение КРАМ »

ARV писал(а): Пн июн 01, 2026 13:27:02 Что скажете насчет классики: отслеживать наличие отладчика и портить прошивку при подозрениях?
А в чем будут состоять подозрения? Ведь запуск под отладкой будет происходить с легально купленным кодом. Он будет штатно исполняться с той лишь особенностью, что это будет происходить под наблюдением железного отладчика.
:)
Вы как собрались его обнаруживать? Ведь взломщик наблюдает и за этим самым "обнаружением".... Код не сможет стереть флеш, поскольку этого не даст сделать сам взломщик.
Ответить

Вернуться в «ARM»