реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Защита для прошивки
prottoss
сообщение Dec 23 2006, 19:43
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(chief_olimp @ Dec 23 2006, 23:36) *
сделай так что бы устройство 10 мин работало а дальше циклилось. такое устройство точно не будут в комерческих целях использовать. А дизасемблировать? ну извините по моему лучше свое написать чем в чужом разбираться.
"расциклить" такое устройство с помощью AVRStudio пара пустяков...


--------------------
Go to the top of the page
 
+Quote Post
Alex@ndr
сообщение Dec 23 2006, 20:23
Сообщение #17


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 22-12-06
Пользователь №: 23 802



Цитата(Валентиныч @ Dec 23 2006, 17:50) *
А зачем писать программатор?!
Нужно написать кусок кода, который при инициализации камня будет проверять значение заводской константы, прописанной в служебных битах, и при ее идентификации разрешать выполнение основной программы.

Тоесть код для контроллера?Можно пример, как вытащить эту константу.
А по поводу защиты от дизасемблирования, может можно программой проверять контрольную сумму флэша, если она не как у оригинальной прошивки, блокировать работу?Если можно, подскажите как(для CodeVision).
Go to the top of the page
 
+Quote Post
bodja74
сообщение Dec 23 2006, 21:37
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(Alex@ndr @ Dec 23 2006, 20:23) *
Цитата(Валентиныч @ Dec 23 2006, 17:50) *

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

Тоесть код для контроллера?Можно пример, как вытащить эту константу.
А по поводу защиты от дизасемблирования, может можно программой проверять контрольную сумму флэша, если она не как у оригинальной прошивки, блокировать работу?Если можно, подскажите как(для CodeVision).

Команда LPM очень легко и непринужденно находиться в асме,так что подпрограмму проверки контрольной суммы найти и отключить несложно,а при желании "раскусить" подпрограмму проверки пин-кода тоже можно.
Если хотите 100% защиты-как уже советовали ,отсылайте прошитый камень
А если не 100% - подумайте над тем ,будет ли нуждаться в ваших услугах заказчик ,если он будет иметь хакера ,если программист способен разобратся в чужом коде,то сможет написать свой не хуже вас wink.gif
Ну а если ломанут,это будет большая честь для Вас,так как ломают дорогие и популярные вещи,и программеры способные создавать такие вещи как правило без работы и денег не сидят.
Так что в любом случае Вы выигрываете. smile.gif
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 23 2006, 21:56
Сообщение #19


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



А может, вместе с прошивкой, высылать клиенту SIM-карту от сотового? Далеко не все SIM-карты клонируются без проблем. Прошивка должна уметь с ней работать, обмениваться информацией, считывать серийный номер, да мало ли ещё что делать. Можно кусок кода в ней хранить и прошивать в процессор при начальной инициализации. А после прошивки, процессор стирает информацию в SIM. То-есть прошить можно будет только ОДНО устройство! Правда, тут без бутлоадера не обойтись.
P.S. А ещё можно применить 1-Wire от Dallas со встроенной RAM. Эта RAM умеет защищаться паролем от считывания, а в ней кусок кода. Но опять-же, нужен BootLoader.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Dec 23 2006, 22:24
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Как вариант в защищаемую фузами область FLASH (максимальная бутовая) укладывается часть функций и работа с ними по фиксированным адресам. Т.е. для специально спрятанных функций заводим сегменты в xcl, замапливаем обычные, но нужные функции туда pragma location, ну и вроде должно помочь...


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 24 2006, 13:11
Сообщение #21


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(sensor_ua @ Dec 23 2006, 21:24) *
Как вариант в защищаемую фузами область FLASH (максимальная бутовая) укладывается часть функций и работа с ними по фиксированным адресам. Т.е. для специально спрятанных функций заводим сегменты в xcl, замапливаем обычные, но нужные функции туда pragma location, ну и вроде должно помочь...
Так оно прекрасно работает (сами так делаем), но как я понял автор не имеет возможности лично прошить в конечный проц эту область и защитить ее фузами.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Alex@ndr
сообщение Dec 24 2006, 14:21
Сообщение #22


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 22-12-06
Пользователь №: 23 802



С SIM-карты защита точно не получится.Там два кода, IMSI-ничем незащищён(его даже через мобильный можно посмотреть),KI-защищён, но у тех карт которые не клонируются, его вычислить невозможно.

Ладно, я так понял нормальной защиты всё равно неполучится, ну мне хотябы защититу от простого копирования прошивки в другой МК. Вот мне идея понравилась проверять заводскую константу CLC.
Может кто-нибудь дать пример кода, как считать эту константу?
Go to the top of the page
 
+Quote Post
bodja74
сообщение Dec 24 2006, 14:25
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Как вариант ,
1 зашивать скриптованную программу с "внутренним" бутлоадером,
2 писать программку для ПК ,которая проверяет проверяет установку фузов.
3 при установленных фузах ,разрешает прием ключа (случайное число от МК) и возвращает дескриптор ключа и прошивки.
4 После этого "внутренний" бутлоадер распаковывает прошивку.
5 Можно добавить ,ложные байты,дескрипторы,подать "1" на порт закороченный на землю при неправильных ключах smile.gif ,короче усложнить жизнь хакеру.

При таком подходе ,потребуется не только перехват потока,но и полная эмуляция программ с анализом работы шифрования,что в принципе равноценно написанию прошивки с "нуля" ,без этой головной боли.
Go to the top of the page
 
+Quote Post
bodja74
сообщение Dec 24 2006, 21:57
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Вау,что я вычитал,
оказывается в мегах48\88\168 программа МК может прочитать фузы защиты,так что задача значительно прощается ,дерзайте.smile.gif
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 25 2006, 00:57
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



А высылать как будете в HEX или в исходниках???

Если в HEX, то самый лучший способ - это какой-нибудь DALAS (как писали). Например часы или термометр. Убедите, что они нужны на плате для работы схемы. Дальше пусть пропишут Вам код (64бит). Его сверяйте при первом запуске, но не сначала. И код должен быть разбросан а не лежать в одном месте (чтоб не нашли).

Если не совпадает, то вылетать куда-нибудь ч/з произвольное время работы, но не в месте сравнения.
Go to the top of the page
 
+Quote Post
Alex@ndr
сообщение Dec 25 2006, 08:11
Сообщение #26


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 22-12-06
Пользователь №: 23 802



C константой калибровочного бита CLC разобрался, беру в регистре OSCCAL.
Буду попробовать, может и фьюзы защиты найду где брать...
Go to the top of the page
 
+Quote Post
add
сообщение Dec 25 2006, 10:55
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



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

Странно что на это никто не обратил внимание? я очень извиняюсь но как вы собираетесь это сделать? - генерить случайный код? генератором случайных чисел? можно поподробнее :-)
зы: может я в танке? :-)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 25 2006, 13:32
Сообщение #28


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Цитата(add @ Dec 25 2006, 10:55) *
... но как вы собираетесь это сделать? - генерить случайный код? генератором случайных чисел? можно поподробнее :-)

Это можно сделать очень просто - при первом включении прибор ждёт нажатия кнопки (или замыкания перемычки), в общем реакции заказчика, и при этом работает тот-же TCNT1 от максимальной тактовой частоты, ну а далее, использовать это значение для инициализации генератора случайных чисел. Можно сделать несколько нажатий кнопки, если хочется совсем уж случайно.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
add
сообщение Dec 25 2006, 14:03
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
Это можно сделать очень просто - при первом включении прибор ждёт нажатия кнопки

Да, согласен. Спасибо.


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 25 2006, 14:20
Сообщение #30


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Alex@ndr @ Dec 25 2006, 08:11) *
C константой калибровочного бита CLC разобрался, беру в регистре OSCCAL.
Буду попробовать, может и фьюзы защиты найду где брать...

Это дело не сработает...
Во-первых там всего 256 возможных значений из которых реально используется отсилы 20.
Во-вторых бывает, что у всех МК одной партии значения калибровочных констант равны.
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01505 секунд с 7
ELECTRONIX ©2004-2016