Easyelectronics.ru

Электроника для всех
Текущее время: 09 дек 2019, 14:44

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 104 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 09:30 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2440
Привет всем!
Интересуюсь в плане защиты прошивки stm32.

Имея бинарик на руках - насколько просто получить исходники?

elf из бинарика можно получить штатными средствами gcc.

из elf получить ассемблерный код тоже можно средствами gcc.

Уже злоумышленник может выключить или обойти защиту (проверку лицензионного ключа, к примеру).

Ну а код на Си, C++ из ассемблерного кода легко получить?



Проблема в чём...
Прошивку я могу зашифровать, дешифровать в бутлоадере.
Но бутлоадер то я не могу зашифровать!
Кто же его дешифрует?

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


Последний раз редактировалось Pingvin 31 окт 2019, 09:38, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 09:36 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4462
Откуда: Кемеровская область, Киселевск
Ты бинарник завязал на ID чипа? И рассылаешь открытые обновления?

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 09:39 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2440
Oxford писал(а):
Ты бинарник завязал на ID чипа? И рассылаешь открытые обновления?

Да - в прошивке проверка ключа на соответствие UID камня.
Все верно - обновления буду рассылать.

Но разобрав бутлоадер можно будет найти ключи шифрования и функцию шифрования.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 09:44 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4462
Откуда: Кемеровская область, Киселевск
А ну все таки у тебя загрузчик и прошивка шифрованная, ты печалишься за взлом загрузчика.

Раз ты решил распространять загрузчик то естественно его ломануть не составит труда. Загрузчик не предназначен для третьих лиц, единственное решение для тебя это продавать МК с прошитым загрузчиком и включенной защитой от чтения.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 09:55 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2428
Цитата:
Ну а код на Си, C++ из ассемблерного кода легко получить?

Херню можно получить, вяло похожую на C. Изначального кода, который писал человек никак не получить. Но и по дизасму разберут, если желание будет.
Локать бут. В буте предусмотреть несколько ключей шифрования обновления. Первый бут содержит только первый ключ. С обновой прилетает новый ключ, и дальшнейшие обновы идут со 2ым ключом. Ну и так периодически менять ключи. Не панацея, если злоумышленник будет получать все обновления по-очереди, он в итоге сможет расшифровать код прошивки. Но хотя бы это введет дополнительные меры защиты. Без всех обновлений, где менялся ключ шифрования уже ничего не сделать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 09:59 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4462
Откуда: Кемеровская область, Киселевск
NStorm, у него загрузчик открытый и он хочет его на общий доступ выкатить. В этом проблема у него. Пока загрузчик открыт ты можешь хоть 100 ключей пилить это не поможет тебе. Поэтому ему в любом случае камни нужно с прошитым загрузчиком продавать.

_________________
RADIOWOLF.RU


Последний раз редактировалось Oxford 31 окт 2019, 10:05, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:03 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2428
Я думал не в общий доступ, просто заказчикакам и т.д. рассылать по запросу. Не панацея конечно, сразу написал. Вообще нет вариантов, если бут открыт. Только усложнять процесс реверса, что никогда не сделает его невозможным всё-равно.


Последний раз редактировалось NStorm 31 окт 2019, 10:13, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:06 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4462
Откуда: Кемеровская область, Киселевск
А заказчик по твоему не открытый доступ что ли?

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:08 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2440
Oxford писал(а):
Раз ты решил распространять загрузчик то естественно его ломануть не составит труда. Загрузчик не предназначен для третьих лиц, единственное решение для тебя это продавать МК с прошитым загрузчиком и включенной защитой от чтения.


Похоже, что так и есть...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:10 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2428
Открытый, но хотя бы ограниченный. Расчет сугубо на "социальную инженерию".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:13 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2440
Есть полуфантастический вариант - шить со своего компа по ssh подключившись к удалённому gdb серверу.
Но это очень далеко от реалий...


В общем - надо сделать стенд для прошивки контроллеров без пайки.
Зашивать буттлоадер и лочить.
Пусть самосборщики покупают контроллеры у меня.


Последний раз редактировалось Pingvin 31 окт 2019, 10:18, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:17 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4462
Откуда: Кемеровская область, Киселевск
Pingvin, я только одного понять не могут ты хочешь наборы продавать девайса без МК что ли?

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:19 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4131
Откуда: КЧР, поселок Нижний Архыз
Только очень мерзкие и гадкие фирмы будут лочить прошивку! Какой в этом смысл? Боятся, что "конкуренты" уведут идею?
Так нужно интенсификацией производства заниматься, чтобы конкурентам было невыгодно выпускать ту же самую продукцию.

Кроме того, получить исходный код из прошивки — работа, не стоящая свеч! Быстрей и дешевле с нуля написать аналогичную прошивку, нежели этой чушью заниматься! Не может быть в прошивке таких оригинальных идей, которые кто-то другой не придумает.
Pingvin писал(а):
Зашивать буттлоадер и лочить.
Пусть самосборщики покупают контроллеры у меня.

Фу, как это низко! Это даже хуже, чем есть младенцев на завтрак!!!


Последний раз редактировалось Eddy_Em 31 окт 2019, 10:20, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:19 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2440
Oxford писал(а):
Pingvin, я только одного понять не могут ты хочешь наборы продавать девайса без МК что ли?

Отдавать печатки для самосборки.
Изначально я хотел сделать открытым проект.
Но узнал, что "производительномеродин" лазертаг оборудования тоже переходит на АРМы.
Делать им такой подарок не хочу.
Они и начали с того, что сперли разработку у американца.
До сих пор сидели на вшивых PIC-ах.


Последний раз редактировалось Pingvin 31 окт 2019, 10:21, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:20 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4462
Откуда: Кемеровская область, Киселевск
NStorm писал(а):
Открытый, но хотя бы ограниченный. Расчет сугубо на "социальную инженерию".

Как раз таки заказчик быстрее ломанет если загрузчик открытый. Потому что он понимает как это все работает и заказать лом не составит труда.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 10:21 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4462
Откуда: Кемеровская область, Киселевск
Pingvin писал(а):
Oxford писал(а):
Pingvin, я только одного понять не могут ты хочешь наборы продавать девайса без МК что ли?

Отдавать печатки для самосборки.
Изначально я хотел открытым проект.
Но узнал, что "производительномеродин" лазертаг оборудования тоже переходит на АРМы.
Делать им такой подарок не хочу.


ну так отдавай печатки на сборку. Единственное прошивать тебе нужно будет лодыря. Просто чип прошей заранее и все. Чипы можешь по себестоимости отдавать и все.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 12:39 
Старожил
Аватара пользователя

Зарегистрирован: 11 мар 2010, 12:44
Сообщения: 1125
Откуда: Default city
Pingvin писал(а):
Но разобрав бутлоадер можно будет найти ключи шифрования и функцию шифрования.

А если ID МК будет частью ключа то это сделать будет сложнее.

_________________
Не дай Бог увидеть нубский ЛУТ, бессмысленный и беспощадный
В МК "на порядок" - это "в два раза"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 13:35 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2440
dekar писал(а):
Pingvin писал(а):
Но разобрав бутлоадер можно будет найти ключи шифрования и функцию шифрования.

А если ID МК будет частью ключа то это сделать будет сложнее.


Неплохая идея...


Я как планирую.

Прошивка считывает UID, шифрует его ключом А.
Пользователь отправляет мне этот зашифрованный UID либо текстом, либо в бинарном виде.
Я дешифрую ключом А - получаю UID.
Шифрую его другим ключом - ключом Б.
Зашифрованный ключом Б UID - это и есть лицензионный ключ.
Его пользователь вводит с консоли или с помощью утилиты загружает бинарик.
При старте прошивка дешифрует лицензионный ключ и сравнивает его с UID.
Если не совпадает - облом.

Ну прошивку можно шифровать третьим ключом, подмешивая в качестве "соли" часть UID.
Только тогда прошивку просто так не выложишь - качайте, обновляйте.
Тогда каждому и прошивку шифровать придется по отдельности.
Что не удобно, согласитесь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 14:27 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 470
Откуда: Киев
Не тебе надо сделать еще софт который будет прошивать МК, МК в открытом виде в самом начале должен передать UID в прошивальщик, он уже делает магию и генерит зашифрованную прошивку. Ну если не в открытом то со статическим ключем шифрования, ну это не важно т.к. бутлоадер открыт и доступен. Разве что немного мозг запудрить. А прошивальщик отправит уже на сервак если уж совсем усложнить, чтобы в прошивальщике небыло прошивки, и не в виде файла а во временный буфер прошивальщика сервак вернет прошивку для прошивки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 14:38 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2440
MasterElectric писал(а):
Не тебе надо сделать еще софт который будет прошивать МК, МК в открытом виде в самом начале должен передать UID в прошивальщик, он уже делает магию и генерит зашифрованную прошивку. Ну если не в открытом то со статическим ключем шифрования, ну это не важно т.к. бутлоадер открыт и доступен. Разве что немного мозг запудрить. А прошивальщик отправит уже на сервак если уж совсем усложнить, чтобы в прошивальщике небыло прошивки, и не в виде файла а во временный буфер прошивальщика сервак вернет прошивку для прошивки.


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

https://www.youtube.com/watch?v=elsnUWTDxTA&t=124s


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 14:41 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2440
forummailandlogin писал(а):
Глупость полнейшая. Представь себя в отпуске/в больнице/в командировке/почту твой украли/компьютер сломался/да просто лень сегодня. И всё, человек умрёт без лазертага так и не дождавшись ответа. Устройство ДОЛЖНО быть самодостаточным.



Код нужно будет ввести один раз.
Он будет хранится в недрах флеша контроллера.
В продаже будут уже активированные устройства.
В чём проблема?


Последний раз редактировалось Pingvin 31 окт 2019, 14:42, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 14:42 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 470
Откуда: Киев
тогда ключ шифрования длинный и писать не подряд, а кусками в разные участки флеша. Потому как начало у прошивки совсем очевидное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 14:43 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2440
MasterElectric писал(а):
тогда ключ шифрования длинный и писать не подряд, а кусками в разные участки флеша. Потому как начало у прошивки совсем очевидное.

Прошивка будет зашифрована.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 14:43 
Заглядывает иногда

Зарегистрирован: 05 дек 2017, 18:17
Сообщения: 194
forummailandlogin писал(а):
Не тебе надо сделать еще софт который будет прошивать МК, МК в открытом виде в самом начале должен передать UID в прошивальщик, он уже делает магию и генерит зашифрованную прошивку. Ну если не в открытом то со статическим ключем шифрования, ну это не важно т.к. бутлоадер открыт и доступен. Разве что немного мозг запудрить.


Это ничего не изменит. В какой-то момент времени, в памяти будет расшифрованный бутлоадер или прошивка, которую этот "отдельный софт" собирается прошивать. Его можно просто сдампить. Так для J-Link-ов прошивку получают.
И расковырять этот прошивальщик будет проще, чем бинарник - банально специалистов больше по x86/x64 ассемблеру и подозреваю, что специализированный софт лучше эту архитектуру поддерживает, чем АРМ. HEX-RAYS в IDA на мой взгляд просто чудеса творит. Я так, мельком поиграл, но в ассемблерном коде я был неделю ковырялся, а в сгенерированном псевдо-коде все было просто очевидно.

Автору, если очень хочется проприетарщины, то продавать имеет смысл набор для сборки + мк с бутлоадером защищенным от чтения. Эта защита тоже каким-то образом снимается, но стоит сильно больших денег, чтобы из-за лазертага этим заниматься. Дешевле с нуля написать.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 31 окт 2019, 14:47 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 470
Откуда: Киев
Круто! А что в качестве радиоканала?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 104 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Sergey_spb, VladislavS


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB