Защита прошивки STM32. Часть 1. Защита от считывания (RDP) и обнаружение отключения (BOR).

  Рет қаралды 23,050

Vladimir Medintsev

Vladimir Medintsev

Күн бұрын

В ролике рассматриваются некоторые аспекты обеспечения безопасности и защиты программного обеспечения микроконтроллеров STM32 от считывания злоумышленниками. В данной части рассматриваются: Защита от считывания (RDP) и обнаружение отключения (BOR). Видео содержит примеры и демонстрацию работы кода.
Канал в телеграмм - t.me/vladimir_medintsev
Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
Канал на RuTube - rutube.ru/channel/1797552/
Канал на KZbin - / vladimirmedintsev
------------------------------------------
Если вы хотите поддержать автора канала номер карты Сбер:
2202-2023-2480-4008
------------------------------------------
Делайте репост в социальных сетях и конечно же оставляйте свои комментарии.
00:00 - Введение
01:24 - Методы взлома
04:15 - Введение в безопасность STM32
06:10 - Защита от считывания (RDP)
18:13 - Обнаружение отключения (BOR)
23:23 - Заключение
----
Пример кода показанный в видео:
FLASH_OBProgramInitTypeDef FLASH_OBInitStruct;
HAL_FLASH_OB_Unlock();
HAL_FLASHEx_OBGetConfig(&FLASH_OBInitStruct);
FLASH_OBInitStruct.OptionType = OPTIONBYTE_RDP;
FLASH_OBInitStruct.RDPLevel = OB_RDP_LEVEL_1;
HAL_FLASHEx_OBProgram(&FLASH_OBInitStruct);
FLASH_OBInitStruct.OptionType = OPTIONBYTE_BOR;
FLASH_OBInitStruct.BORLevel = FLASH_VOLTAGE_RANGE_3;
HAL_FLASHEx_OBProgram(&FLASH_OBInitStruct);
HAL_FLASH_OB_Launch();
HAL_FLASH_OB_Lock();
----

Пікірлер: 214
@Techn0man1ac
@Techn0man1ac 3 жыл бұрын
И Вам спасибо, Владимир
@chegleeff
@chegleeff 3 жыл бұрын
Всегда интересные видео 👍
@user-bb4ef4uh6c
@user-bb4ef4uh6c 3 жыл бұрын
Классное видео, интересное направление.
@Roman_Malov
@Roman_Malov 3 жыл бұрын
Видос отличный зачет,спасибо.
@babursapayev188
@babursapayev188 3 жыл бұрын
Thanks Bro. Salamu Aleykum from Turkey
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Your welcome.
@user-qu5xj4no5q
@user-qu5xj4no5q 3 жыл бұрын
сразу вспомнил прошивки принтеров )) объясню поподробнее. Суть дела - производитель хочет продавать картриджи по завышенным ценам. Для этого изобрели чипы (eeprom с криптозащитой). Но умельцы - хакеры модифицируют прошивку и отключают учет тонера по чипу картриджа. Поэтому следующим шагом стала защита самой прошивки принтера... Саму прошивку считать несложно - она часто в отдельной флеш-памяти. При старте аппарата, стартует бутлоадер, он в начале флеш. По хитрому алгоритму (в последних аппаратах вроде как используются пары публичного и приватного ключа, т.е. шифрование как в tls ) прошивка расшифровывается и распаковывается (zlib часто для экономии места флеш) в оперативку. Конечно хакеры начали дебажить и прочее... но сам процесс сильно усложнился. Последний шаг - система на чипе, когда в одном чипе флеш, оперативки и собственно контроллер...
@ugene4063
@ugene4063 3 жыл бұрын
Ага. Чипы с криптозащитой. Attiny 13 🤣
@user-qu5xj4no5q
@user-qu5xj4no5q 3 жыл бұрын
@@ugene4063 ?? почему же. Для чипов сначала использовались eeprom AT88, а далее самсунг стал использовать свою наработку (чипы 921). Определенно есть что-то еще, но я с тем не сталкивался
@ugene4063
@ugene4063 3 жыл бұрын
@@user-qu5xj4no5q ну потому что я только такие видел. У меня был целый парк hp принтеров. Чипы я извлекал, лечил и использовал жля своих поделок. 1кб флеша мне хватало
@user-qu5xj4no5q
@user-qu5xj4no5q 3 жыл бұрын
@@ugene4063 а, понятно. не знал, что использовали в HP (до того как они samsung купили). Надо будет тоже поковырять, немало чипов таких должно быть ))
@0koshi
@0koshi 3 жыл бұрын
А кто заставляет покупать последние модели принтеров с такой защитой? Можно найти на складах уже правильные принтеры ну или на барахолках. А запчасти и тонер можно найти и для очень древних принтеров, которые по износу почти вечные, те тогда они были дорогими с механикой по большей частью из металла. А проблемму с драйверами успешно решает карточка с lpt портом + виртуальная машина
@compreability1854
@compreability1854 3 жыл бұрын
отлично было бы ч.2!)
@edgull_tlt
@edgull_tlt 2 жыл бұрын
Спасибо
@vad741
@vad741 3 жыл бұрын
Влепил лайкос потом смотрел. Тема очень актуальна. Разберите все доступные варианты защит.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Тут уже кто-то предлагал лучшую защиту. Не давать устройство пользователю.
@VojtekPomianowski
@VojtekPomianowski 3 жыл бұрын
"Вас сломают в любом случае весь вопрос только в цене." - не зовсім так. Скільки років на ринку криптопроцесори для сім карт. Премію оголошувала 10млн$ за взлом. Ніхто не взломав. Не рахуємо знайденого бага в алгоритмі V1.0 V1.1 котрий певний час експлуатувався. По такому ж принципу може працювати і захист програмного коду МК - кожен запуск і кожен період роботи МК потребує автентифікації не отримав код автентифікації - аварійний режим. Правда такий режим буде потребувати постійного доступу до серверу розробника. що на сьогодні можна забезпечити.
@VojtekPomianowski
@VojtekPomianowski 3 жыл бұрын
Проданий не один десяток міліардів чіпів.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@@VojtekPomianowski Так то же специально сделанные криптопроцессоры. Мы же говорим о civil grade низкого уровня.
@VojtekPomianowski
@VojtekPomianowski 3 жыл бұрын
В серіях G реалізовані можливості більш глибокого апаратного захисту, але звичайно не кардинально інші.
@dmytromykhailiuta9268
@dmytromykhailiuta9268 3 жыл бұрын
Дякую, дуже корисний канал.
@user-tu1ue9mw4w
@user-tu1ue9mw4w 3 жыл бұрын
В любой защите , всегда есть дыра - человек. Сам про...л защиту пару раз. Хорошо девайсы обратно пришли. После этого нацарапал установку защиты. автоматом.
@dazzershell
@dazzershell 3 жыл бұрын
Найти людей, кто в этом бинарнике что-то поймёт - гораздо сложнее и дороже, чем создать свое. У нас пытались и бросили.
@vakivaki7847
@vakivaki7847 3 жыл бұрын
Атмеги тоже можно защитить ) фьюзы защитные выставить)))
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Видео посвящено STM32.
@finskiymaster
@finskiymaster 3 жыл бұрын
спасибо за информацию. в одном из обсуждений аппаратной защиты устройств от копирования была высказана мысль - "если ты МОЖЕШЬ создать устройство, которое имеет смысл копировать, то ты МОЖЕШЬ придумать, как его защитить"
@user-tu1ue9mw4w
@user-tu1ue9mw4w 3 жыл бұрын
Да , мысль интересная. Вот только за это время можно было ещё пару устройств сделать. Непоспав пару недель ты сделаешь защиту, а через месяц узнаешь, что кто-то её хакнул. Не потому что ты тупой, а потому ,что чел этим профессионально занимается несколько лет и учел то, что ты не учел. Иии? Бросать всё и делать защиты? А магнитометры кто будет делать?
@alexpetrov4500
@alexpetrov4500 2 жыл бұрын
Денис вы неправы. 1. Когда вы создаёте устройство, вы решаете чётко одну задачу, используя существующий не вами созданный контроллер как платформу. 2. Устройство и наработки которые вы создали может успешно и прекрасно работать. 2а) успешность и смысл массового копирования вашей работы и/или продукта, это отдельная большая тема включающая - моральные, бизнес рыночные и экономические аспекты. Но мы пока ее пропустим. 3) есть кейсы когда вы создаёте продукт , и возможно продукт требующий простой безопасности, используя опять же уже существующий контроллер - как электронщик и программист вы знаете только его ТТХ и искренне, полагаетесь и верите что так оно и работает. То что вы упускайте, включенный бит защиты - а) не всегда работает как вы думаете, просто потому что есть риски которых вы не знаете. б) вы используете платформу архитектуру которой вы не знаете и не можете знать досконально, это чужой закрытый продукт. в) есть куча тонкостей и методов аттак, не будучи экспертом вы вряд ли будете способны защитить свой продукт и интеллектуальную собственность - не потратив ещё 10 лет на изучение именно метов защиты + чип дизайн, и тонкостей реализации архитектуру кортекса с точки зрения практической безопасности. Итого: писать код это одно, а делать защиты и писать безопасно, это соооовсем другое и требует 3-4х навыков и 4х времени.
@StahLHerZRocK
@StahLHerZRocK Жыл бұрын
@@user-tu1ue9mw4w магнитометры нам нужны, без магнитометров в стране абсурд и коррупция
@user-tu1ue9mw4w
@user-tu1ue9mw4w Жыл бұрын
@@StahLHerZRocK коррупция во всем мире. Во все наши неполживые сдристнули в Израиль и что там теперь? Коррупция?!
@StahLHerZRocK
@StahLHerZRocK Жыл бұрын
@@user-tu1ue9mw4w к чему этот ваш опус?)
@Ololoshize
@Ololoshize 3 жыл бұрын
Владимир, подскажите, а как понять, что это первый запуск устройства? Или можно при каждом старте (до бесконечного цикла) выполнять приведённый вами код, который устанавливает защиту?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Ну можно же проверить статус защиты. Если она не установлена, значит установить. И значит это и есть первый запуск, а если установлена, то поехали дальше. Ну как бы это ведь не сильно сложно?
@trymbachyaroslav3828
@trymbachyaroslav3828 3 жыл бұрын
Спасибо за видео. Только я не понял как изменение уровня BOR влияет на защиту прошивки?
@user-wk2rb1on5s
@user-wk2rb1on5s 3 жыл бұрын
Я так понял что речь шла о взломе методом питания на самых нестабильных пределах и для увода рабочего режима в более стабильное питание этот диапазон можно задать
@kardanium
@kardanium 3 жыл бұрын
Сколько уже работаю с STM32, но вот про то, что RDP Lvl 2 залочит камень окончательно и бесповоротно - честно, не знал. Я в принципе особо блокировкой чтения памяти и не интересовался, но теперь буду знать.
@silicodance
@silicodance 3 жыл бұрын
Даже если пин boot0 подтянуть к единичке нельзя будет через встроенный бутлоадер снять защиту через утилиту Demonstrator?
@dazzershell
@dazzershell 3 жыл бұрын
@@silicodance Я по дурочке поставил лвл2 однажды. Надпись "убрать эту защиту не получится" в утилите меня не напугала. Пришлось 100 ногий корпус сдувать и перепаивать. На уровне 2 там внутри корпуса пережигаются какие-то перемычки. Но камни сейчас ломают и чисто механически, корпус фрезеруют и флешку как-то считывают электронным микроскопом. И цены на это вполне доступны.
@silicodance
@silicodance 3 жыл бұрын
@@dazzershell Ничего себе, буду знать. Ну допустим считают, и смогут копировать устройство, смогут дизассемблировать и даже немного изменить под себя наверное смогут, но смогут ли они восстановить обратно Си код и использовать его для себя и дальше развивать, это вряд ли, как думаете?
@dazzershell
@dazzershell 3 жыл бұрын
@@silicodance смогут, у нас это делали с китайскими платами. Боялись свою разработку начинать. По итогу, большая часть прошивки - таблицы магических чисел, сворованные уже китайцами с какого-то оригинала. Любое отклонение в параметрах устройства, и ничего не работает. А вот от китайцев прятать надо все. Особенно ноу-хау всякие, просто потому что такое же устройство у них выйдет в 3 раза дешевле, даже с учетом доставки, даже если работать по себестоимости. Интересная статья была, как наша ракета Игла появилась, на базе Стингера, советую посмотреть.
@anatoliyv5607
@anatoliyv5607 Жыл бұрын
​@@silicodance скорее в объектный файл
@WindLighter
@WindLighter 2 жыл бұрын
а как эти функции выглядят напрямую, в смысле не фенкция HAL, а "регистр такой-то" = "значение"?
@clora1136
@clora1136 3 жыл бұрын
* @brief Launch the option byte loading. * @note This function will reset automatically the MCU. я так понимаю на F1 блокировать флешь не надо, ибо оно перезагружается при установке?
@elnurismailov7592
@elnurismailov7592 4 ай бұрын
Такой вопрос STM32F105 стоит зашита от чтения при снятии в программе stlink защиты проц очищается есть ли возможность считать данные в stm32f105 который стоит защита от чтения
@rdengin
@rdengin Жыл бұрын
Институт этот Фраунгофер называется. Это, на секундочку, разработчик MPEG.
@MaxiRPD
@MaxiRPD 3 жыл бұрын
Все что нужно знать про защиту STM32 (как и любого другого MC) - сколько конкретно тысяч долларов стоит взлом конкретного того камня на котором вы делаете проект на сегодня, для того чтоб считать риски, делать какие-то прогнозы и применять(не применять) этот камень. Естественно если нужно будет - сломают RDP level2 по щелчку.
@pistoletov1974
@pistoletov1974 3 жыл бұрын
Спасибо большое. Раз левел ставится в коде то его можно и снять в коде? Например зажимая кнопочку при старте программы переключать левел 1 - 2 или еще хитрее сделать что-то что бы мк не в мусор если левел 2 нужен а оставлять секретик?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Ну в видео же прямо говорится что уровень 2 снять нельзя. Никак. Совсем.
@alexeiarhangelsky7436
@alexeiarhangelsky7436 2 жыл бұрын
@@VladimirMedintsev Я тоже подумал что доступ блокируется только для внешних интерфейсов отладки SWD/JTAG. На что сразу возникает интерес проверить снять уровень 2 из кода прошивки, так как ей вроде как доступ ко всему остаётся.
@vernnms78
@vernnms78 3 жыл бұрын
Подскажите, пожалуйста, начинающему, какую среду программирования использовать для STM?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
STM32CubeIDE бесплатно скачивать с сайта www.st.com
@NIKOLAY_PSHONIA
@NIKOLAY_PSHONIA 3 жыл бұрын
Спасибо за видео. Почитав коменты - у меня вопрос? Можно ли написать кусок проги на свободный вывод (кнопка) нажал и проц запустил кусок проги и снял защиту 2. или невозможно программным путем снять защиту 2 ???
@user-lc3jq3qq9x
@user-lc3jq3qq9x 3 жыл бұрын
2 уровень защиты окирпичивает камень, его более нельзя шить, смотри внимательнее видео. Сброс возможен только с lvl1
@eugene6411
@eugene6411 3 жыл бұрын
@@user-lc3jq3qq9x так он окирпичивает его отключением SWD. А вот изнутри может и можно обратно вернуть на левел 0, тем самым включив SWD обратно
@NIKOLAY_PSHONIA
@NIKOLAY_PSHONIA 3 жыл бұрын
@@user-lc3jq3qq9x т.е. внутри прога не сможет сбросить биты в проце ?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Левел 2 снять нельзя.
@NIKOLAY_PSHONIA
@NIKOLAY_PSHONIA 3 жыл бұрын
@@VladimirMedintsev Теперь понял.
@muxahx3096
@muxahx3096 2 жыл бұрын
Забыли вы указать один момент. Сам производитель делает закладки для того чтобы давать доступ специальным службам. Обычно этим занимается сам дизайнер чипа, т.к. покупатели обычно контролируют целостность кристалла. Закладки могут быть как на открытие чипа так и на то чтобы его выводить из строя как временно так и на всегда. Эти закладки были и будут. И это самый лакомый кусок.
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
И вы конечно же можете привести пример таких закладок? Ну наверняка ведь вы узнали об этом из статьи в нормальном, заслуживающем доверия, источнике. Просто интересно знать из каких источников люди черпают это тайное знание. Или нет источников?
@alexpetrov4500
@alexpetrov4500 2 жыл бұрын
Не лакомый но зависит от страны, законов и условий. Есть случаи когда вы не сможете произвести чип без используя уже существующую arm архитектуру и все наработанные инструменты без сторонних закладок арма, а без знаний безопасности не сможете защитить ни код, ни архитектуру, ни дизайн кристалла. Также как и использовать законно какие либо методы не "сертифицированного" шифрования и компиляторов и уже тут вы получите закладку вне зависимости от... И это социальный государственный косяк.
@Nidvoraich
@Nidvoraich 3 жыл бұрын
Левел 2 можно сбросить на 0 изнутри? По идее же можно. Значит, например, можно написать код, который будет при определённом условии на минуту, например, сбрасывать защиту на ноль. Каждый второй вторник месяца в 15:00, к примеру. Или при определенной комбинации нажатых клавиш. Или я не прав насчёт сброса изнутри (с помощью уже залитой прошивки)?
@eugene6411
@eugene6411 3 жыл бұрын
@@VladimirMedintsev а если программно изнутри установить левел 2, а потом сбросить обратно в левел 0, то прошивка останется? Не очистит флешку процессор? Или флеш перетирается только при снятии блокировки через отладчик? Или из левел 2 в левел 0 не перетирает, а из левел 1 в левел 0 перетирается?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@@eugene6411 левел 2 снять нельзя. Никак. Никогда. Он однократный. Программатором понизить уровень 1 -> 0 можно но прошивка будет очищена
@eugene6411
@eugene6411 3 жыл бұрын
@@VladimirMedintsev а если изнутри в прошивке понизить уровень 1 -> 0, то тоже очистится или продолжит работать?
@user-tu1ue9mw4w
@user-tu1ue9mw4w 3 жыл бұрын
@@eugene6411 я думаю, все можно сделать, если упереться в проблему. Только кто вас кормить будет , всё это время?
@eugene6411
@eugene6411 3 жыл бұрын
@@user-tu1ue9mw4w это понятное дело, вопрос скорее спортивного характера
@shamandn3064
@shamandn3064 3 жыл бұрын
А при установки RDP Level 2 в каком состоянии будет внутренний бутлоадер? Можно ли перезалить прошивку используя его?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Если установлен левел 2 нет у вас больше бутлоадера
@NEOSPORYMIY
@NEOSPORYMIY 3 жыл бұрын
Можно перезаливать прошивку только с самописного бутлоадера.
@vad741
@vad741 3 жыл бұрын
В может ли сама программа по спец событию понизить уровень с 2 до 0? Проверить бы так же кнопкой.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@@vad741 ответ нет не может. Левел 2 устанавливается один раз, навсегда.
@trollermik4204
@trollermik4204 3 жыл бұрын
@@VladimirMedintsev Возможно глупый вопрос, но возможно ли после level2 затереть МК и использовать повторно?
@CadmiumUA
@CadmiumUA 3 жыл бұрын
где-то читал что греют микруху, тем самым загоняют в троттлинг, потом через пин ресетят и пытаются подключится, и попадают в тот момент когда проц включился но биты защиты еще не применены. Хз насколько правда, но вроде так с стлинков прошивки сливают.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Троттлинг? На STM32?
@CadmiumUA
@CadmiumUA 3 жыл бұрын
​@@VladimirMedintsev Ну наверно не совсем троттлинг как таковой, но какая то температура, при которой микро начинает тупить.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Не, я просто уточнил.
@user-tu1ue9mw4w
@user-tu1ue9mw4w 3 жыл бұрын
Иногда помогает. На некоторых камнях. Но в последнее время редко.
@konstantingolinskiy4944
@konstantingolinskiy4944 3 жыл бұрын
А можно например использовать UID МК он же у каждого свой как серийный номер можно в коде при запуске проверять серийник если он одинаковый тогда программа стартует дальше если нет то попадаем в бесконечный пустой цикл, тогда можно защиту от чтения не городить. Если и считают бинарник или хекс то зашив в другой камень прога просто не запуститься. Как вы думаете такое будет работать?
@romanmurashko
@romanmurashko 3 жыл бұрын
Бинарник же можно дизассемблировать и найти то условие, которое чекает серийник. Ну и подправить. Это в теории.
@eugene6411
@eugene6411 3 жыл бұрын
@@romanmurashko лучше тогда уж сделать так, чтобы в случае если серийник отличается, то не попадать тупо в бесконечный цикл, а продолжать работать, но не совсем правильно)) Если не верный серийник, то добавить немножко рандома в алгоритм программы) Пусть мамкины кул хацкеры поломают голову почему их устройство в некоторых непредсказуемых случаях сбоит))0
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Можно, но мне кажется муторно в условиях массового производства для каждого изделия отдельную прошивку компилировать.
@silentage6310
@silentage6310 3 жыл бұрын
@@VladimirMedintsev человек видимо имел в виду что прошивка при первом запуске считывает ид и сохраняет во флеш. при повторном запуске если ид сохранен - то только проверяет его и если он не сходится - дальше не запускается. если прошивку скопируют - то на другом камне она не будет работать. наверное через отладку защиту будет не сложно найти, но в лоб скопировал - прошил новый - не заработает. многие на этом и закончат :)
@user-tu1ue9mw4w
@user-tu1ue9mw4w 3 жыл бұрын
@@silentage6310 нужно делать хеш от ид. И в определенных местах делать проверку. Сломать сломают, но это стоит дороже.
@user-hm7gl7er6z
@user-hm7gl7er6z 2 жыл бұрын
вот не знаю, но на F0 не идет. BOR понятно не поддерживается. До основного цикла, после активации RDP не стартует программа. бесполезно, но зато отключается интерфейс программирования. В основном цикле работает не поймешь как. Ибо все таки. эти вещи вероятно можно повторять 1 раз и только в основном цикле, а значит, необходимо делать проверку статуса нужных битов RDP. иначе это не работает основная программа.
@user-je8oz6lh6w
@user-je8oz6lh6w 2 жыл бұрын
Вопрос дилетанта. Как можно узнать в STM32CubeIDE, какой режим компиляции установлен - DEBUG или RELEASE ?
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
А если поднести мышку к кнопке не показывает???
@user-je8oz6lh6w
@user-je8oz6lh6w 2 жыл бұрын
@@VladimirMedintsev Я не про это. Чтобы написать #if
@user-je8oz6lh6w
@user-je8oz6lh6w 2 жыл бұрын
@@VladimirMedintsev Понимаю - тупой вопрос. Просто у меня #if ! DEBUG пишет "синтаксическая ошибка"
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
Надо смотреть на описание компилятора, что за дефайны он там поддерживает.
@user-je8oz6lh6w
@user-je8oz6lh6w 2 жыл бұрын
@@VladimirMedintsev Разобрался, спасибо.
@AdamFullowsky
@AdamFullowsky 3 жыл бұрын
Привет, можешь рассказать в новом видео о том, как из программы перейти в DFU режим. Я находил несколько способов. Первый был частично аппаратный, и основанный на конденсаторе и резисторе на ножке бут, где пин gpio подключался к буту, и потом на него подавалась единица, и контроллер быстро программно ребутили. Второй более сложный, там в программе сначала сбрасывается вся конфигурация, и идёт переход по адресу DFU загрузчика, но как оно работает, и почему компилятор выдаёт непонятную ошибку связанную вообще с юникодом я так и не разобрался. Просто интересная тема, и возможно многим полезна будет. https: // community .st . com/s/question/0D50X00009XkeeW/stm32l476rg-jump-to-bootloader-from-software
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Об этом есть великолепная статья Олега Артамонова - olegart.livejournal.com/1493696.html Подробнее никто уже не расскажет. Ну и кстати, под видео с рассказом о загрузчике в комментариях тоже очень много дельного попадалось.
@iwh1te340
@iwh1te340 3 жыл бұрын
Есть приборы, стоимость их от 300 тыс (за самую дешевою версию), производят их 2 фирмы во всем мире (которые в этой области еще с 70х годов), есть еще 3я, но это инженеры которые работали там, стырили наработки и открыли свою фирму. О чем это я, ах да, прошивка у них не залочена от слова совсем. Кому нужно вспороть, вспорят, либо подберут алгоритм работы (у меня в одно рыло на это ушло, 2 месяца) начиная со схемы, и заканчивая алгоритмом обработки сигнала.
@NodsFrend1
@NodsFrend1 3 жыл бұрын
абсолютная защита? в герметичном боксе откачиваем воздух. ставим датчик давления и освещенности, автономно батарейку. если корпус разобрал то микросхема делает пшик. а разбирать в вакууме не каждый сможет.
@silentage6310
@silentage6310 3 жыл бұрын
с учетом тех систем для взлома что показаны в начале это мелочь.
@leharuso
@leharuso 3 жыл бұрын
абсолютная защита - это вообще не давать пользователю железку на руки.
@dllsearch
@dllsearch 3 жыл бұрын
Meltdown и Spectre показали, что даже при удаленном пользовании можно получать данные из железа. Конечно, в STM такие механизмы предсказания не используют, но кто знает, может и найдут, как сдампить прошивку замыканием двух контактов.
@cb_q
@cb_q 3 жыл бұрын
не подойдет, у Китая уже есть космическая программа.
@ivanrusev2270
@ivanrusev2270 Жыл бұрын
А почему в stm32f103 я выставляю бит защиты аппаратно через st-link/v2 и у меня программа не работает.?
@VladimirMedintsev
@VladimirMedintsev Жыл бұрын
Да кто же вас знает что вы там и где выставляете.
@ivanrusev2270
@ivanrusev2270 Жыл бұрын
@@VladimirMedintsev Ещё один вопрос.Мне нужно создать в программе код доступа что бы эта опция работала?
@VladimirMedintsev
@VladimirMedintsev Жыл бұрын
Я не понимаю ваш вопрос.
@ivanrusev2270
@ivanrusev2270 Жыл бұрын
@@VladimirMedintsev Да я на серии stm32f103 выставил бит защиты и программа защищена но не работает контролер.?
@ugene4063
@ugene4063 3 жыл бұрын
Превращать чип в кирпич не шибко красивая идея. Даже дуболомы atmel давали возможность получить чистый чип при любой глобальной катастрофе.
@user-hn4ef7ek4n
@user-hn4ef7ek4n Жыл бұрын
Во-во,поэтому все эти Атмельки ломают как орешки.
@ajdarseidzade688
@ajdarseidzade688 3 жыл бұрын
Только 14:01 - неправильный порядок отключения (последующее включение тоже неправильное вообще-то) и кирдык контроллеру или порту отладчика в будущем обеспечен.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Признаться я как-то не задумывался об этом. Думаю весьма вероятно что когда-нибудь кирдык произойдет. Даже вероятно он реально произойдет. Но вот пока думаю несколько тысяч подключений прошли без проблем. Мы реально на горячую так платы подключаем отключаем.
@ajdarseidzade688
@ajdarseidzade688 3 жыл бұрын
@@VladimirMedintsev "Несколько тысяч" - имелось ввиду, что Вы наверно так готовые устр-ва перепрограммируете и питание подаете по этому же разъему. Если нет и питание уже бывает там - то невероятное везение.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@@ajdarseidzade688 Да питание подаем по тому же разьему.
@user-if7zu8nk2j
@user-if7zu8nk2j 3 жыл бұрын
@@ajdarseidzade688 Ничего подобного. SWDIO и SWCLK - это обычные GPIO-порты. Когда вы подключаете программатор, то на эти порты подаются либо логические "0" либо логические "1" (в зависимости от логики роботы самого программатора и стадии программирования), которые никак не могут повредить контроллер Я в своей практике подключаю-отключаю программатор в ЛЮБОМ порядке по разному как попадёт. Ни один процессор не вышел из строя ещё
@ajdarseidzade688
@ajdarseidzade688 3 жыл бұрын
@@user-if7zu8nk2j Да без проблем - продолжайте так и делать дальше. LPT порты (видели такой?) так и горели у юзеров когда в компьютерном сервисе работал и на горячую они их подключали. На работе, у начальника, периодически либо контроллер (ПИК причем!! а не хилый STM32, который от небольшого перегрева паяльником способен выйти из строя и не сразу может, а потом!) какой-то сгорит, либо у программатора один раз контроллер внутри вышел из строя (и чинил я его). Также на горячую продолжайте подключать и HDMI кабеля. Помню, в компьютерном сервисе, когда я работал там (я ремонтировал принтеры/ксероксы/электронику), то ребята из "компьютерной" части (те что непосредственно софт на ПК устанавливают или их собирают) даже память (RAM) на горячую меняли и ничего! ( :) до поры, до времени).
@user-wq5ex8lw7c
@user-wq5ex8lw7c 3 жыл бұрын
В чем смысл level1 если он снимается бесприпятственно штатными методами?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Он снимается только с очисткой памяти. Значит программу снять не получится, а чип повторно использовать получится.
@user-wq5ex8lw7c
@user-wq5ex8lw7c 3 жыл бұрын
@@VladimirMedintsev Ясно, спасибо. Значит полезная возможность.
@dmitriycold6906
@dmitriycold6906 3 жыл бұрын
На 103 процессоре после этого защита ставится но программа не работает.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
И ставится и работает. Проверено. Опшен бит вообще не влияет на выполнение программы в принципе. Он только управляет интерфейсом программирования и отладки.
@dmitriycold6906
@dmitriycold6906 3 жыл бұрын
FLASH_OBProgramInitTypeDef FLASH_OBInitStruct; HAL_FLASH_Unlock(); HAL_FLASH_OB_Unlock(); FLASH_OBInitStruct.OptionType = OPTIONBYTE_RDP; FLASH_OBInitStruct.RDPLevel = OB_RDP_LEVEL_1; HAL_FLASHEx_OBProgram(&FLASH_OBInitStruct); HAL_FLASH_OB_Launch(); HAL_FLASH_OB_Lock(); HAL_FLASH_Lock(); Ставлю вот этот код до основного цикла и программа не выполняется. Я просто не совсем пойму в основной цикл можно его ставить? Эти биты защиты каждый раз флешку не будут тереть?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Поставите в основной цикл и что? Будет бесконечное выполнение. Если у вас где-то что-то виснет, воспользуйтесь отладчиком. При установке никакая флешка не трется. Где в документации читать я показал.
@dmitriycold6906
@dmitriycold6906 3 жыл бұрын
Так беда то в том что отладка после этого уже не работает )))
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@@dmitriycold6906 если отладка не работает значит опшен бит установлен. проверяйте может вы по какой-то причине в hard fault улетаете. Я не Кашпировский мне отсюда не видно что у вас там в камне происходит.
@Lownger
@Lownger Жыл бұрын
подскажите, как в stm32cubeIde поменять RDP?
@VladimirMedintsev
@VladimirMedintsev Жыл бұрын
Это делается не в IDE, а в STM32CubeProgrammer
@Lownger
@Lownger Жыл бұрын
@@VladimirMedintsev но я прошиваю МК прямо из IDE. Всё равно надо качать STM32CubeProgrammer ?
@Lownger
@Lownger Жыл бұрын
@@VladimirMedintsev ладно, попробую так тогда FLASH->OPTCR |= 0x0000FF00;
@VladimirMedintsev
@VladimirMedintsev Жыл бұрын
@@Lownger Ну для начала разблокировать надо.
@Lownger
@Lownger Жыл бұрын
@@VladimirMedintsev там какая-то мутная процедура разблокировки. Если я правильно понял, сначала записываем в OPTKEYR 2 пароля, потом ждем while (FLASH->SR & FLASH_SR_BSY) __NOP(); потом пишем в OPTCR, потом устанавливаем FLASH_OPTCR_OPTSTRT и снова ждем BSY. Это правильно?
@davidkain9046
@davidkain9046 2 жыл бұрын
слить прошивку пол беды. ее еще нужно декомпилировать ..
@ArthurIslamRU
@ArthurIslamRU 3 жыл бұрын
Спасибо большое Уважаемый Владимир. Вы только главное не рассказали: зачем ломать Кристал, то есть пример, зачем читать чужой флеш и тп?
@kazimiralmazov2245
@kazimiralmazov2245 3 жыл бұрын
Допустим Владимир разрабатыает устройство и тратит на это пол года. Затем отладка годами и поддержка. Рродает это устройство по адекватной цене. В эту цену входит себестоимость устройства и себестоимость потраченных мыслей и читаний всяких пдф. А некоторый умный, не глупый человек. Покупает это устройство и полностью делает клон один к одному, но продает в два раза, а может и в четыре народу. Для этого и пилят кантроли)))))
@ArthurIslamRU
@ArthurIslamRU 3 жыл бұрын
@@kazimiralmazov2245 привет, подождите, получается так: человек архитектор делает тз на проект. Схемотехник и конструктор плат реализуют его в железе. Сложном железе. Потом пишется сложнейшее по. Потом отладка. Заливка тестовой версии, потом выход на коммерцию. И, например, я не заложил Кристал. Товарищи читают ядро в бинарный файл. И? Что они без железа сделают? Или, положим, даже сделают железо, как они его интегрируют с софтом?
@kazimiralmazov2245
@kazimiralmazov2245 3 жыл бұрын
@@ArthurIslamRU каждый соф лезет в железо допустим к номеру 123456. Сделав сто железок с номером 123456 то думаешь софт их различит?))) Привязки софта к компу и прочему аленеводству это пол часа доя полупьяного хакера. Главное, стали делать железо. Именно железка сложное устройство. И кто повторяет железку он должен разгадать мысли и задумки того, кто эту железку сочинил.))))
@ArthurIslamRU
@ArthurIslamRU 3 жыл бұрын
@@kazimiralmazov2245 да, думаю здесь две вещи: хрень всякую нет смысла копировать, как я понимаю, на гитхабе скачать можно. А серьезные вещи, и копировать и ломать будут на серьезном уровне, через рентген восстановят топологию платы, если серийники не затертые, и из по вырежут нужные блоки, чтобы не разбираться со всей микропрограммой... В общем, я так и не понимаю, зачем лочить кристал
@MsSk0000
@MsSk0000 3 жыл бұрын
вопрос: на какого хомяка в опенсорс-эпоху нужна защита?? кроме того, что нужно защищать написанные кем-то подлянки, чтобы их не попалили, ничего в голову не приходит... ну или для школоты - защитить супер-пупер алгоритм вычисления факториала ))
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Даже по утверждениям рьяных сторонников open source доля открытого ПО меньше 10%. О какой эпохе опен соурс вообще вы говорите. Считаете что лично ваш код защищать не надо, ваше право, никто не заставляет. А данные аппаратные возможности заложены в микроконтроллер и о них это видео. Использовать или нет это вы там сами как-нибудь. Мне ваш хомяк не интересен.
@semenkovrov4256
@semenkovrov4256 3 жыл бұрын
@@VladimirMedintsev человек говорит, что честным людям скрывать нечего, а вы со своими 10%... (проценты сами придумали или нагуглить успели?)
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@@semenkovrov4256 Во-первых эти 10% были придуманы не мной, а озвучены ребятками на августовской Open Source Tech Conference. Более того, мне кажется они подыграли и намеренно завысили эту цифру так сказать для поддержки. Но в принципе все понимают, что сама идея работает, но только в очень ограниченном количестве случаев. Во-вторых мы под этим видео это все уже обсуждали. Точнее пытались обсудить. Я даже приводил реальный жизненный кейс. Сейчас процитирую. "...вот давайте я реальный пример приведу, а вы если это возможно посоветуйте как поступить. Вот есть два разработчика электроники для медицины. У них есть приборы которые разработаны более 10 лет назад. Я зная недостатки разработал свой прибор на современной базе и с современным ПО. Запили я сейчас опен соурс через месяц они обновят свои приборы и пользуясь связями в научных кругах прикроются статьями. Таким образом на рынок после этого мне вообще будет вход закрыт ибо пока я найду деньги на сертификацию своих приборов их оборудование будет в продаже 1 год. А из выйгрыша ну скажут мне спасибо что человек и может донат на сто рублей пришлют. Как вот в этой ситуации быть? Вполне реальный кейс." И что вы таки думаете мне ответил человек? Да вполне ожидаемо: " не открывайте код пока не сделаете коммерческого успеха и не закрепитесь на рынке". Шах и мат. В-третьих лично мне кажется что современные старатели за открытый код очень похожи на сектантов. Сами написать ничего не написали (ну реально проект для ограниченного количества радиолюбителей не имеющий в принципе коммерческой ценности не в счет), а все им открой. В-четвертых довод про честным людям скрывать нечего вообще детский какой-то. Без разницы, ошибки есть у всех, нет людей пишущих без ошибок. Более того ошибки есть и у меня в видео и у других. Все ошибаются и смеются над чужими ошибками только сугубо не здоровые люди. Так что наличие ошибок и уязвимостей это не повод к закрытию кода. Причина у всех только одна - коммерческая. Оговорка, я не имею ввиду проекты мигания лампочками.
@MsSk0000
@MsSk0000 3 жыл бұрын
@@VladimirMedintsev оговорюсь, что мне понравилось данное видео, и я уважаю проделанный труд, но мой посыл относился не столько к увиденному, сколько к тенденции навязывать нам скрытый функционал, в результате чего на нас вынуждают приобретать товары по завышенным ценам (пример те же картриджи HP), льется поток ненужной рекламы, укрепляется платформа полицейского мироустройства и т.п. Возможность скрыть свои подлянки - является предпосылкой к чувству безнаказанности, которая впоследствии вытекает в вещи деструктивного масштаба гораздо значимые, чем возможная выгода. Мы ведь не бабочки-однодневки, поэтому приходится задумываться а во что все выльется лет этак через 20-30
@user-tu1ue9mw4w
@user-tu1ue9mw4w 3 жыл бұрын
Судя по обсуждению в теме, картина печальная. Любой китаец, запилит любой проц, сидя на циновке у дверей макдональдса. Так что , Владимир, вешаем паяльники на стену, и расходимся.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Я практически не использую паяльник.
@user-tu1ue9mw4w
@user-tu1ue9mw4w 3 жыл бұрын
@@VladimirMedintsev повезло. Тады стлинки повесьте.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
И их не буду вешать. В моей вселенной все хорошо.
@user-tu1ue9mw4w
@user-tu1ue9mw4w 3 жыл бұрын
Ну и правильно.
@kazimiralmazov2245
@kazimiralmazov2245 3 жыл бұрын
Улыбает, что так все стараются на халяву защитить свои прошивки. Все дело не в цене спила проца и всяких там криптовых наворочек. Все дело в цене устройства на этом проце. Если устройство дорогое в пределах от 20- и выше тысяч руб и есть спрос на него, то свинтят проц в легкую. Все процы выпускают в Китае и там же их пилят. Ну например. Проц STM32F105 цена спила 1000$ +150$ за удаление в прошивке всяких заморочек с криптами и проверками. Ну и теперь давайте посчитаем окупаемость проекта. Сколько нужно продать клонов устройства, чтобы окупить и наварить. Продаём клон половина цены от 20 тыс руб. Тоесть по 10 тыс. Допустим продаем 20 таких клонов и получаем.... А если устройсво еще выше стоимостью, то расчет окупаемости резко в наваре. Что бы там в STM не трендели, то кристалл проца это обычная многослойная плата, а элементы там обычные транзисторы. Все наши барыги по спилу процев это посредники в китае. Только мощный микроскоп увидет кристал и зная как расположены элементы все легко на лазере правится. Кстати улыбает, когда трут маркировку на корпусе проца))) На кристале стоит маркировка и китаец на заводе все это определит после первого прохода до кристала. И ещё. Нужно знать к кому обращаться в китае. Нормальный спил проходит так. Обговаривается цена работы по вытряхиванию прошивки. Дизят прошивку. Затем китаец присылает два прошитых кантроля для проверки. Вы получаете кантроли. Впаиваете в устройство и если все работает, то оплачиааете работу по пэйпалу и сразу получаете готовую прошивку для производства клонов... Вот и все ребята!!! Все ваши заморочки с шифрами, криптами и id привязками пустая трата времени..))))
@cnjzyjdheckfy
@cnjzyjdheckfy 3 жыл бұрын
Может,в таком случае ,не нужно закрывать исходники ,а делать все открытым ?
@kazimiralmazov2245
@kazimiralmazov2245 3 жыл бұрын
@@cnjzyjdheckfy написано выше. Все дело в цене на устройство!!!! Ломишь цену, значит жли клона. Глянь на стоимость Кесс2 или загрузчик Ктаг.. Сколько официально стоит и по чем продают?? А там процы вообще по 206 лап имеют...Если ты написал код и включаешь лампочку в сортире или подмигиваешь девкам светодиодиком. То можешь лочить, не лочить, тебя не спилят точно..
@CadmiumUA
@CadmiumUA 3 жыл бұрын
@@cnjzyjdheckfy не всегда это возможно. Например у нас в украине, у нотариусов юсб ключи доступа к реестрам сделаны на стм32. Представляете такое открыть.
@kazimiralmazov2245
@kazimiralmazov2245 3 жыл бұрын
@@CadmiumUA за нотариусов могут наказать.. А вот самодельщиков без всяких документов и со своими самопалами можно чемоданами пилить)))
@bogdanzayatsastronomyandna4722
@bogdanzayatsastronomyandna4722 3 жыл бұрын
@@kazimiralmazov2245 Про самодельщиков: 1)проще самому написать код по действиям микроконтроллера, 2)Большинство исходников их "труда" есть на Гитхабе.
@ibrag2012
@ibrag2012 3 жыл бұрын
Було таке: планував систему безпеки: продублював слабкі місця, зробив майже абсолютною, а потім замислився: а якщо у мене буде потреба вломитися? -у висновку залишив декілька неочевидних вразливостей (а ще і зменшив вартість проекту).
@dkmcdk724
@dkmcdk724 3 жыл бұрын
Сколько амбиций у народа... Кому нужен их говнокод, куда надежнее и быстрее написать свой код, чем копаться в чужих какашках. Не у всех конечно, но 98% - правда, даже типа в промышленных решениях.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Нет ну тут действительно народ готов умирать за свой код. Есть у меня один пример из жизни у человека есть хорошая разработка. Человек сильно в возрасте. И сам реализовать не может т.к. не хватает денег и жизненных сил и другим не отдает, опасается что украдут. И не хочет понять элементарного, что эта идея через пару лет будет китаем массово производиться и будет за копейки в каждом доме. Нет это ментальное. Такое словами не переубедить.
@dkmcdk724
@dkmcdk724 3 жыл бұрын
@@VladimirMedintsevСам много раз встречал таких. Да бог с ними. Я еще могу понять когда человек не хочет публиковать нечто готовое и цельное - типа схема, исходный код, конструкторская документация, потенциальный рынок сбыта. Но зацикливать на безопасности бинарного кода!!! Средств защиты STM вполне достаточно для 99.99% случаев и заморачиваться на более сложных способах защиты могут только менеджеры и по-настоящему больные люди.
@VukaGhost
@VukaGhost 3 жыл бұрын
"Не хотелось бы, чтобы их прошивка ушла куда-то" Волков бояться - в лес не ходить, как говорится. А кто боится - пусть меняет род деятельности (например, метет дворы. Метла-то уж вряд ли куда "уйдет"). Столлман наш пророк
@user-if7zu8nk2j
@user-if7zu8nk2j 3 жыл бұрын
А я считаю что это всё игрушки. Любая нормальная фирма, которой нужно будет какой-нибудь девайс как-правило наймёт людей, которые ей этот девайс сделают и напишут под него прогу. Либо приобретёт готовое устройство, которое будет выполнять те функции, которые даной канторе нужны. Никто не будет этим дрочевом заниматься по слому и считыванию чужих прошивок. Правильно была написана тут фраза - "если ты МОЖЕШЬ создать устройство, которое имеет смысл копировать, то ты МОЖЕШЬ придумать, как его защитить" Так что не парьтесь по поводу защиты. Никому нафиг ваши проги не нужны
Please be kind🙏
00:34
ISSEI / いっせい
Рет қаралды 167 МЛН
Stupid Barry Find Mellstroy in Escape From Prison Challenge
00:29
Garri Creative
Рет қаралды 20 МЛН
孩子多的烦恼?#火影忍者 #家庭 #佐助
00:31
火影忍者一家
Рет қаралды 1,5 МЛН
Vivaan  Tanya once again pranked Papa 🤣😇🤣
00:10
seema lamba
Рет қаралды 16 МЛН
STM32 DMA ч.1
26:54
MBDLB
Рет қаралды 1,4 М.
Уроки Ардуино. ПИД регулятор
28:57
Заметки Ардуинщика
Рет қаралды 455 М.
ЧЕМ ПОСЧИТАТЬ КОНТРОЛЬНУЮ СУММУ
6:09
BAYERN CARTUNER
Рет қаралды 14 М.
Gizli Apple Watch Özelliği😱
0:14
Safak Novruz
Рет қаралды 3,7 МЛН
Ждёшь обновление IOS 18? #ios #ios18 #айоэс #apple #iphone #айфон
0:57
Iphone or nokia
0:15
rishton vines😇
Рет қаралды 1,9 МЛН
После ввода кода - протирайте панель
0:18