Stm32 с чего начать изучение...
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18592
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Stm32 с чего начать изучение...
Господа-профессионалы, вопрос на засыпку: существует ли способ распространять бинарник прошивки без возможности его несанкционированного использования?
Сформулировал загадочно, поясняю.
Есть желание отправить прошивку по электронке. Но есть риск, что её прошьют в неоговоренное количество МК. МК у "заказчика", естественно, куплен самостоятельно, т.е. к серийнику привязать или там загрузчик с шифрованием использовать я не могу.
Но, (а вдруг?!), есть какие-то другие способы, мне, как дремучему, просто неизвестные?
Сформулировал загадочно, поясняю.
Есть желание отправить прошивку по электронке. Но есть риск, что её прошьют в неоговоренное количество МК. МК у "заказчика", естественно, куплен самостоятельно, т.е. к серийнику привязать или там загрузчик с шифрованием использовать я не могу.
Но, (а вдруг?!), есть какие-то другие способы, мне, как дремучему, просто неизвестные?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
- linux_rulezz
- Вымогатель припоя
- Сообщения: 622
- Зарегистрирован: Пн сен 15, 2025 08:43:23
- Откуда: Маленький СССР посреди шариатской республики
- Контактная информация:
Re: Stm32 с чего начать изучение...
Нет, естественно!ARV писал(а): Пн июн 01, 2026 09:09:49распространять бинарник прошивки без возможности его несанкционированного использования?
Ну и да: какой смысл вообще бинарник кому-то пересылать? Выкладываешь код на гитхабе - нехай сами качают, собирают и прошивают…
// правда, я больше уверен, что просто поржут над "кодом" ☺
Windows must die!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18592
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Stm32 с чего начать изучение...
Вы явно поспешили. После того, как я написал вопрос, мне пришла в голову идея "активации" прошивки определенным кодом. Например, так: прошивка берёт уникальный номер чипа, генерирует какой-то хеш и выдаёт пользователю, который присылает мне его, а я ему в ответ высылаю новый хеш на основе этого, он вводит его в устройство, и так оно "активируется". Тонкости алгоритмов хеширования и способов активации можно оставить за кадром. Разве этот метод не даст 99% гарантии, что прошивка налево не уйдет?
Любопытно, что сказал бы на такое бухгалтер, если бы 1С распространялась по этому принципу... Хотя, судя по вашему нику, проблемы пользователей вас никогда не интересуют в принципе, линукс же не для пользователя, а для программиста...linux_rulezz писал(а): Пн июн 01, 2026 09:41:16 Выкладываешь код на гитхабе - нехай сами качают, собирают и прошивают…
Ну вот, а говорили
Сами всё знаете, а спрашиваете...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Stm32 с чего начать изучение...
сложно. прошивка должна цепляться за какие-то фиксированные параметры устройства вроде UID, и быть устойчивой к декомпилированию, в том числе с помощью ИИ.Но, (а вдруг?!), есть какие-то другие способы, мне, как дремучему, просто неизвестные?
- linux_rulezz
- Вымогатель припоя
- Сообщения: 622
- Зарегистрирован: Пн сен 15, 2025 08:43:23
- Откуда: Маленький СССР посреди шариатской республики
- Контактная информация:
Re: Stm32 с чего начать изучение...
Как следует из моего ника, я совершенно против анального огораживания.
Но любители оного обычно делают так: пишут собственный бутлоадер (который может вполне свободно распространяться) и шифруют прошивку. Сначала на МК пишется сам бутлоадер. Далее, скажем, при нажатии определенной кнопки (или снятии перемычки) на старте МК "представляется" парой устройств: собственно DFU + CDC. По CDC пользователь получает некий хэш (из серийного номера МК и чего-либо еще), отсылает этот хэш огораживателю, получает другой хэш, который скармливает через CDC (и он сохраняется во флеш-памяти МК). Далее обычный dfu-util заливает прошивку (но сам бутлоадер проводит операции по дешифровке и проверки корректности сохраненного кода).
Я все свое распространяю по лицензии GPLv3, так что такой дичью мне заниматься не нужно. Да и вообще, сохранять в секрете прошивку имеет смысл лишь в двух случаях: а) это - военщина (например, прошивка "супер-пупер" дрона), б) это - очень дорогое и востребованное изделие, на разработку которого потрачено очень много денег (соответственно, если конкурент получит прошивку, то сможет значительно дешевле делать копии).
Если изделие производится малым тиражом и никому нафиг не нужно, то нет и смысла прошивку защищать.
Судя по тому, что ты пользуешься калокубом, да и вообще "на ВЫ" с STM32, тебе нет вообще никакого смысла париться насчет защиты: в а) тебя не возьмут, в б) ты тоже никак не вольешься…
Windows must die!
- Реклама
Re: Stm32 с чего начать изучение...
А что, ИИ на этот счет не дает разве ответ?ARV писал(а): Пн июн 01, 2026 09:09:49 существует ли способ распространять бинарник прошивки без возможности его
Принцип давно известный и пришел из мира"больших компутеров" - лицензионный ключ. Но чтобы усложнить взлом бинарника, его самого нужно зашифровать.
То есть, устройство поставляется с прошитым в МК программным загрузчиком в защищенных секторах флеша. Этотзагрузчик содержит алгоритм дешифровки прошивки, которая присылается пользователю. Соответственно, при первом запуске устройства с прошивкой запрашивается лицензионный ключ, который генерится на основе серийного номера устройства или микроконтроллера. В отправляете покупателю сгенерированный ответ, он его вводит, и этот ответ заносится в защищённую ячейку памяти и в дальнейшем не запрашивается.
С другой стороны... Что делают большинство начинающих программистов после написания первого hello world? Правильно - интересуются, как можно защитить свою прошивку от посягательства других, таких же начинающих?
Как правило, прошивки таких начинающих не представляют собой ничего ценного, они значимы лишь для того, кто их написал.
- КРАМ
- Друг Кота
- Сообщения: 25292
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Stm32 с чего начать изучение...
Это фуфло, Роман...ARV писал(а): Пн июн 01, 2026 09:54:04 мне пришла в голову идея "активации" прошивки определенным кодом. Например, так...
Открытая прошивка достаточно легко декомпилируется на предмет нахождения точки активации с первого же раза обычным отладчиком.
С другой стороны сама бизнес-модель отношений с заказчиком в корне порочна. Либо деньги берут за проект, либо входят в долю бизнеса с помощью договора.
Re: Stm32 с чего начать изучение...
Повысить взломомтойкость прошивки можно ее шифрованием. Имею ввиду распространяемый бинарник
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18592
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Stm32 с чего начать изучение...
Для организаций это приемлемо, но тем не менее никак не защищает разработку от "утекания" на сторону. Для работ, выполняемых частным образом - неприемлемо от слова совсем, т.к. при упоминании слова "договор" в ответ раздастся конское ржание. Увы, но это так...КРАМ писал(а): Пн июн 01, 2026 11:56:50 Либо деньги берут за проект, либо входят в долю бизнеса с помощью договора.
Любая защита взламывается, вопрос лишь в цене взлома. Против профессионального хакера не только мой вариант защиты бессилен, но и любой иной. Однако, такому хакеру надо заплатить. И если заплатить ему будет дороже, чем купить у меня "ключ" - маловероятно, что кто-то будет это делать... На то и расчет.КРАМ писал(а): Пн июн 01, 2026 11:56:50 Открытая прошивка достаточно легко декомпилируется на предмет нахождения точки активации с первого же раза обычным отладчиком
Возвращаясь к примеру с 1С - бухгалтер сам ломать не будет, не та квалификация. Флешку-ключ воткнуть - это его уровень.
Я написал ранее, что такой вариант исключен - "заказчик" покупает МК и паяет устройство сам, моя лишь прошивка.Rapra писал(а): Пн июн 01, 2026 11:48:28 устройство поставляется с прошитым в МК программным загрузчиком в защищенных секторах флеша
Если за это кто-то платит, значит, это имеет ценность не только для меня - логично?Rapra писал(а): Пн июн 01, 2026 11:48:28 Как правило, прошивки таких начинающих не представляют собой ничего ценного, они значимы лишь для того, кто их написал
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18592
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Stm32 с чего начать изучение...
Воздержитесь от анализа моих возможностей, личных качеств и т.п. не имеющих отношения к сути аспектов, и сосредоточтесь при написании ответа на вещах, реально имеющих смысл контексте обсуждения. Если, кроме слов о моих личных качествах/способностях, вам сказать нечего - молчите вообще.linux_rulezz писал(а): Пн июн 01, 2026 11:27:02 тебе нет вообще никакого смысла париться насчет защиты: в а) тебя не возьмут, в б) ты тоже никак не вольешься…
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- КРАМ
- Друг Кота
- Сообщения: 25292
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Stm32 с чего начать изучение...
Естественно, потому что это неотличимо от найма.ARV писал(а): Пн июн 01, 2026 12:17:12 Для работ, выполняемых частным образом - неприемлемо от слова совсем
Для заключения договора нужно сначала стать ИП и пропускать деньги через счет этого ИП. Со всеми вытекающими из этого платежами в казну.
Для частного разработчика есть только один путь - получить деньги за саму разработку и забыть про тираж у заказчика.
Re: Stm32 с чего начать изучение...
В таком случае ничего не поможет. Участок клда с проверкой ключа обнаруживается довольно быстро и обезвреживается. Я даже сам такое не раз проделывалARV писал(а): Пн июн 01, 2026 12:17:12 н - "заказчик" покупает МК и паяет устройство сам, моя лишь прошивка.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18592
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Stm32 с чего начать изучение...
А если рассмотреть ситуацию под другим углом?
Тот, кто получает мою прошивку - некий "радиолюбитель", который дружит с паяльником, знает, что такое программатор и вполне способен прошить по инструкции МК. Но сам разобраться в программировании не может (не хочет) - иначе зачем бы он обращался ко мне?!
Соответственно, сделав некий вариант "защиты", я уже не позволю ему тупо штамповать без меня устройства.
Но у него наверняка найдется приятель, который тоже слышал про HAL, Куб и даже сам делал "хелловорд", и к которому он явно обратится с просьбой взломать мою "защиту". Предполагать, что это будет настоящий хакер, достаточно несерьёзно, т.к. даже я сам не взялся бы за взлом чужой прошивки, даже если речь шла бы об AVR (на котором я собаку съел), и даже за деньги. Поэтому следует только осложнить этому "энтузиасту" жизнь настолько, чтобы он прекратил попытки.
Для этого я вижу массу путей... Но, как вы все в курсе, я ленивый, и вместо перебора придуманных мной вариантов, хотел поинтересоваться, решал ли кто подобные задачи и как именно.
Судя по всему, никто нечего такого не решал, ограничиваясь обычным теоретизированием. Соответственно, мои надежды получить ответы хотя бы в виде идей, тщетны...
P.S. У меня лично есть успешный опыт взлома скринсейвера под Windows (правда, это было давно, еще до эпохи 64-бит, да и скринсейвер был защищен весьма примитивно - место вычислилось поиском строки "invalid key"), и неудачный опыт взлома протокола ИК-обмена между идентификатором коровы и считывателем на входе в коровник (в коде содержалась CRC, но какой именно кусок данных и каким именно методом она обрабатывала, выяснить не вышло). Так же есть опыт самописного бутлоадера с шифрованием для AVR, который успешно используется и по сей день, правда я с этого ничего не имею по условию "договора", как КРАМ и писал.
Тот, кто получает мою прошивку - некий "радиолюбитель", который дружит с паяльником, знает, что такое программатор и вполне способен прошить по инструкции МК. Но сам разобраться в программировании не может (не хочет) - иначе зачем бы он обращался ко мне?!
Соответственно, сделав некий вариант "защиты", я уже не позволю ему тупо штамповать без меня устройства.
Но у него наверняка найдется приятель, который тоже слышал про HAL, Куб и даже сам делал "хелловорд", и к которому он явно обратится с просьбой взломать мою "защиту". Предполагать, что это будет настоящий хакер, достаточно несерьёзно, т.к. даже я сам не взялся бы за взлом чужой прошивки, даже если речь шла бы об AVR (на котором я собаку съел), и даже за деньги. Поэтому следует только осложнить этому "энтузиасту" жизнь настолько, чтобы он прекратил попытки.
Для этого я вижу массу путей... Но, как вы все в курсе, я ленивый, и вместо перебора придуманных мной вариантов, хотел поинтересоваться, решал ли кто подобные задачи и как именно.
Судя по всему, никто нечего такого не решал, ограничиваясь обычным теоретизированием. Соответственно, мои надежды получить ответы хотя бы в виде идей, тщетны...
P.S. У меня лично есть успешный опыт взлома скринсейвера под Windows (правда, это было давно, еще до эпохи 64-бит, да и скринсейвер был защищен весьма примитивно - место вычислилось поиском строки "invalid key"), и неудачный опыт взлома протокола ИК-обмена между идентификатором коровы и считывателем на входе в коровник (в коде содержалась CRC, но какой именно кусок данных и каким именно методом она обрабатывала, выяснить не вышло). Так же есть опыт самописного бутлоадера с шифрованием для AVR, который успешно используется и по сей день, правда я с этого ничего не имею по условию "договора", как КРАМ и писал.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- КРАМ
- Друг Кота
- Сообщения: 25292
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Stm32 с чего начать изучение...
Не совсем так.ARV писал(а): Пн июн 01, 2026 12:55:26 Судя по всему, никто неичего такого не решал, ограничиваясь обычным теоретизированием.
У нас была необходимость старую версию изделия осовременить почти (насколько это позволяли аппаратные ресурсы) до новой версии.
Был написан открытый загрузчик, где код был нерегулярно растворен в таблице шифрования. Код application был зашифрован кадрами, где псевдослучайным образом располагались ключи к таблице шифрования. Сначала происходила прошивка бутлоадера. Затем софт на ПК через интерфейс (RS422) грузил основную прошивку в буферный флеш. Затем бут проверял и при отсутствии устанавливал защиту от чтения и лишь после этого начинал дешифрование буфрного флеша с разворачиванием основного исполняемого кода по месту его штатного расположения во флеше.
Я понимал, что люди, которые будут иметь оба файла и будут апдейтить изделие не смогут вскрыть бут - слишком дорого для них. А конечному заказчику это было по барабану.
Но контроля за количеством таких апдейтов не было. Для компании бизнес состоял не в количестве, а в сохранении клиентуры, которой мы экономили деньги на старых объектах.
Re: Stm32 с чего начать изучение...
Любые навороты разбиваются об запуск под отладчиком и обнаружение точки первого запроса серийника. Далее, этот запрос просто перепрыгивается прямым указанием адреса перехода, а все последующие запросы серийника отслеживаются бряками и так же обезвреживаются даже без перекомпиляции кода, простой заменой байтов. Работы - от получаса до нескольких часов. Доступно для программиста средней квалификации. Можно даже поручить какому-нить программисту, объяснив что делать и пусть он прогонит код под отладчиком на поиск всех запросов ключа.
Почему же? Я как раз взламывал подобные защиты, даже не имея большой хакерской квалификации. И именно поэтому сам такой вариант защиты не применяю. Потому что он бессмысленен, дает лишь ложное ощущение защищенности.ARV писал(а): Пн июн 01, 2026 12:55:26 Судя по всему, никто нечего такого не решал, ограничиваясь обычным теоретизированием
Хал и Куб тут ваапще не нужен. Нужно всего лишь под отладчиком найти место запроса ключа и обойти его, изменив пару байт в прошивке.ARV писал(а): Пн июн 01, 2026 12:55:26 который тоже слышал про HAL, Куб и даже сам делал "хелловорд"
Последний раз редактировалось Rapra Пн июн 01, 2026 13:19:24, всего редактировалось 1 раз.
- КРАМ
- Друг Кота
- Сообщения: 25292
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Stm32 с чего начать изучение...
Я же про это и сказал. Все было сделано с пониманием контингента занимающимся апдейтом, специфичностью рынка изделия и самой цели апдейта. Защищался лишь маленький кусок алгоритма основной прошивки. То есть сначала нужно было получить мотивацию к такому взлому. И даже получив открытый хекс, нужно было еще разобрать сам этот внутренний алгоритм, расположение и структура которого совершенно неизвестны взломщику. Проще самому написать свой код.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18592
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Stm32 с чего начать изучение...
Если б у меня была возможность реализовать загрузчик, я б не стал мутить воду тут... Но увы, вся фишка в том, что почтовые расходы на рассылку заранее прошитого МК (без разницы - рабочей прошивкой или только бутлоадером) сожрут весь смысл такой работы... Я ж не о промышленных сериях говорю, а о штучных частных заказах.
Не в виде опровержения, но в качестве любопытства: как быстро у вас бы пропало желание ковыряться, если бы я сделал "проверку серийника" в десятке мест и, в случае его несовпадения, тупо бы затирал случайную страницу FLASH? Что скажете насчет классики: отслеживать наличие отладчика и портить прошивку при подозрениях?Rapra писал(а): Пн июн 01, 2026 13:10:30 Любые навороты разбиваются об запуск под отладчиком и обнаружение точки первого запроса серийника
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18592
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Stm32 с чего начать изучение...
это было сказано для уточнения уровня потенциального взломщика
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Stm32 с чего начать изучение...
Потенциальный взломщик может вообще никогда не слышать об Хале и Кубе, но взломать вашу защиту за полчаса.
- КРАМ
- Друг Кота
- Сообщения: 25292
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Stm32 с чего начать изучение...
А в чем будут состоять подозрения? Ведь запуск под отладкой будет происходить с легально купленным кодом. Он будет штатно исполняться с той лишь особенностью, что это будет происходить под наблюдением железного отладчика.ARV писал(а): Пн июн 01, 2026 13:27:02 Что скажете насчет классики: отслеживать наличие отладчика и портить прошивку при подозрениях?
Вы как собрались его обнаруживать? Ведь взломщик наблюдает и за этим самым "обнаружением".... Код не сможет стереть флеш, поскольку этого не даст сделать сам взломщик.


