Защита контроллера от считывании кода прошивки.

power1
22/03/2018 22:39
Разработчики часто используют Lock-биты для закрытия своих программ, но это возможно только на живом контроллере.
Интересует закрытый файл прошивки активный один раз. это возможно с применением всяких ключей и их подобных, с ними конечно геморой и 100% их расшифровки, гарантий нет.

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

n max
22/03/2018 23:14
Это серийный номер кристалла,который храниться в специальном регистре доступном только для чтения.Такую защиту используют производители мобильных гаджетов для защиты от несанкционированной замены микросхем(неавторизованного ремонта).Но если вы будете использовать в своей программе проверку его на соответствие какому то числу то эту процедуру можно легко обойти считав и поправив программу

ДОБАВЛЕНО 22/03/2018 23:16

С мобильными девайсам там проверка идёт через инет на сервере производителя--т.е генериться цифирь на основе этих серийников--отправляется на сервак там проверяется валидность и приходит цифирь в ответ и девайс активируется.

ДОБАВЛЕНО 22/03/2018 23:17

Проверка серийников офллайн была в первых моделях трубок нокия и её успешно отломали злобные хакеры голливудская улыбка

power1
22/03/2018 23:35
Получается так, считываю к камня его код, заношу в свою прошивку, только этот код при соответствии принимает данный контроллер, другие камни не берут, или что с ошибкой. Загнать мою прошивку, в другой камень нужно заменить в ней существующий код на другой, по соответствию другого контроллера
это получается как с ключами, нужно выявить, увидеть этот ключ в коде прошивки, думаю очень сложно, если еще в прошивку вставлю этот
ключ внутри мусора, смешенного с рабочим кодом.
Нужно пробовать, но как увидеть, этот уникальный код?

ДОБАВЛЕНО 22/03/2018 23:50

n max писал:
Это серийный номер кристалла,который храниться в специальном регистре доступном только для чтения.


Разве его не как использовать, применить как ключ к открытию приема данных.

n max
22/03/2018 23:50
Наверное надо изучить даташит на ваш контроллер там должен быть адрес регистра в котором прописан чпу ид.
Да ни кто не будет искать среди мусора вашу цифирь это нафиг и не надо.Главное найти точку входа в процедуру проверки и точку возврата+переход по условию остальное дело техники направить программу в правильное русло.Поправив несколько байт прошивки улыбка

ДОБАВЛЕНО 22/03/2018 23:55

Использовать для приёма данных--это по аналогии с лоченным заргузчиком в телефоне--это тоже отламывается

ДОБАВЛЕНО 22/03/2018 23:59

Таким же образом можно записать цифирь в епром и закрыть его от чтения результат будет аналогичен серийнику проца

power1
23/03/2018 00:11
n max, Не поймем мы друг друга, задача создать файл прошивки, который пройдет по открытому каналу в определенный контроллер
и установит в нем программу, другие же не примут ее, или наберут со всякой вставленной билебердой.
По истечению наработки часов, контроллер блокируется, и что бы заблокировать счетчик , остановить другой прошивкой

n max
23/03/2018 00:22
Чего тут не понятного подмигивание не указан тип контроллера это микросхема или промышленный контроллер(типа плк)
Во вторых задача эта практическая или теоретическая подмигивание подмигивание Если ваша разработка будет в единичном экземпляре для конкретного применения то ни кто ломать вашу защиту не будет.Или вы супер мега девайс разрабатываете с выходом на мировые рынки-тут другое дело

ДОБАВЛЕНО 23/03/2018 00:24

power1 писал:
n max, Не поймем мы друг друга, задача создать файл прошивки, который пройдет по открытому каналу в определенный контроллер
и установит в нем программу, другие же не примут ее, или наберут со всякой вставленной билебердой.
По истечению наработки часов, контроллер блокируется, и что бы заблокировать счетчик , остановить другой прошивкой


Для этого достаточно сделать счётчик в епроме и периодически его инкрементировать,как досчитает до нужного включается злобный алгоритм стирания прошивки улыбка улыбка Вроди так

power1
23/03/2018 00:57
Да счетчик не проблема, что придумать интересней. Нет на моем контроллере, серийник не запрограммирован
жаль не нашел такой приписки...



n max
23/03/2018 01:12
В контроллерах начального уровня такой фишки нет в более продвинутых уже должна быть.
Подключить к свободной ноге таблетку от домофона и читать ёе серийник и по нему делать проверку

power1
23/03/2018 01:13
n max писал:
Чего тут не понятного подмигивание не указан тип контроллера это микросхема или промышленный контроллер(типа плк)
Во вторых задача эта практическая или теоретическая подмигивание подмигивание Если ваша разработка будет в единичном экземпляре для конкретного применения то ни кто ломать вашу защиту не будет.Или вы супер мега девайс разрабатываете с выходом на мировые рынки-тут другое дело



n max
Да контроллер обычный Atmega, готовых проектов много, в работе, проверенны, востребованы, геморой изготовлять девайсы, стоять в очередях на почте. Задумка рассылать прошивки.

n max
23/03/2018 01:24
Клиенту выдавать только загрузчик чтоб он мог залить его в атмегу и подключить оный к компу допустим по усб\ком а прошивку лить удалённо.
Да и на случай самостоятельного изготовления ваших устройств клиентом желающих поубавиться,да и у братьев из поднебесной сейчас много чего можно купить за вменяемые деньги в виде конструктора или готового девайса

ДОБАВЛЕНО 23/03/2018 01:25

Да сейчас если игра стоит свеч то из защищённого контроллера могут вытащить прошивку правда денюх стоит это приличных

power1
23/03/2018 01:42
n max писал:
Клиенту выдавать только загрузчик чтоб он мог залить его в атмегу и подключить оный к компу допустим по усб\ком а прошивку лить удалённо.


Это как, сначала сохранит загрузчик, поймает в след прошивку.
И поехали в конвеер! одобрение

ДОБАВЛЕНО 23/03/2018 01:50

n max писал:

Да сейчас если игра стоит свеч то из защищённого контроллера могут вытащить прошивку правда денюх стоит это приличных


Тащить ее не будут, не стоит таких денег, а наживиться на халяву
сию каждый третий.

n max
23/03/2018 21:36
Загрузчик лежит в открытом доступе клиент его заливает в чип самостоятельно,а далее по интерфейсу льётся прошивка

power1
24/03/2018 20:40
n max

Ээт как, можно по подробнее, я зааписываю!!!!

n max
24/03/2018 21:00
Это небольшая программулька,которая может залить прошивку через интерфейс ком порт или усб основную программу.
В процессорах от филлипс такую заливают с завода,чтоб можно было их прошить через RS232 внутрисхемно.Потом при залитии осн программы загрузчик затирается и не мешает работать основной программе.Обычно располагается в конце памяти программ.

power1
24/03/2018 21:40
n max,
Это небольшая программулька



Rom-Zecs
28/03/2018 03:31
если бы ты на самом деле что то создал, то такого вопроса не возникло бы.
калибровочная константа

power1
28/03/2018 10:33
Rom-Zecs писал:
если бы ты на самом деле что то создал, то такого вопроса не возникло бы.
калибровочная константа


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

Rom-Zecs
28/03/2018 15:02
все бы получали авторское на свои свистелки

power1
28/03/2018 18:01
Да с кем совет держать то, гляжу вы не мастер совсем,
а попиздеть все умеют.





Rom-Zecs
28/03/2018 19:18
http://monitor.espec.ws/section44/topic291849p20.html
я так понимаю это продолжение той темы
http://monitor.espec.ws/section5/topic291418.html
насчет того, кто любитель потрындеть

power1
28/03/2018 21:17
Rom-Zecs, Точно так подметил. Но ты не прав, прошивка на ПММ давно написана, в работе и востребована,
скину скоро в открытом доступе будет, сию другим занимаюсь по сложней, тоже окупит нервы все увидят.

n max
28/03/2018 21:29
power1 писал:
Rom-Zecs писал:
если бы ты на самом деле что то создал, то такого вопроса не возникло бы.
калибровочная константа


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


Это лего вычисляемо при копировании прошивки в другую микросхему факт её чтения и проверки легко засечь,ну а потом поправить в другой микре

Rom-Zecs
28/03/2018 21:52
n max писал:
power1 писал:
Rom-Zecs писал:
если бы ты на самом деле что то создал, то такого вопроса не возникло бы.
калибровочная константа


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


Это лего вычисляемо при копировании прошивки в другую микросхему факт её чтения и проверки легко засечь,ну а потом поправить в другой микре

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

n max
28/03/2018 22:07
Имелось ввиду команда обращения к этому регистру для чтения её ни как не зашифруешь,а далее путь этих данных уже можно отследить. Если я считаю прошивку с одной микросхемы и залью её в другую и она не заработает то изучив даташит быстро найду отличия

ДОБАВЛЕНО 28/03/2018 22:17

В реале эту константу прочитают и бухнут в стэк там с ней произведут какие то действия и сравнят с эталоном потом будут 2 ветки одна если совпало,вторая если нет.Тут не вникая в сложности шифрования просто поправить вторую ветку алгоритма чтоб она совпала с первой по точке входа.И микре станет пофиг на эту константу

Rom-Zecs
29/03/2018 13:07
вряд ли можно что то существенно более взломостойкое придумать.
только если отправлять зашитые чипы

ДОБАВЛЕНО 29/03/2018 13:07

http://www.cyberforum.ru/avr/thread2086327.html
похожая тема

n max
29/03/2018 22:01
Ну так и я об этом.Всё отламываемо голливудская улыбка

Rom-Zecs
30/03/2018 10:39
n max писал:
Ну так и я об этом.Всё отламываемо голливудская улыбка

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

power1
30/03/2018 14:44
[quote="Rom-Zecs"][quote="n max"]
power1 писал:
рабочая прошивка дается в обмен на тестовую прошедшую рабочий цикл


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

Rom-Zecs
30/03/2018 21:26
n max писал:
power1 писал:
рабочая прошивка дается в обмен на тестовую прошедшую рабочий цикл


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

я говорил что
"если бы ты на самом деле что то создал, то такого вопроса не возникло бы. "
пс тебе уже сказали что можно а что нельзя с этим чипом

n max
30/03/2018 21:31
Остаётся так и делать толкать на почте смех Даже если вам и удастся реализовать проверку серийника и выложить в открытом доступе вашу прошивку,то поправить её в нужных целях сможет любой програмописатель.Такие случаи уже были

liveinternet.ru RadioTOP Rambler's Top100 –ейтинг@Mail.ru