|
Защита для прошивки |
|
|
|
Dec 23 2006, 02:20
|
Участник

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

|
Здравствуйте, У меня такая ситуация: есть прошивка(в CodeVisionAVR под AtMega16), нужно передать её другому человеку, но так, чтоб он смог использовать её только для одного устройства.
Думаю сделать это так: при первом запуске контроллер генерит случайный код, записывает его в EEPROM и выводит на LCD.Код передаётся мне, я составляю ответный код, передаю его, он вводится в устройство, контроллер записывает его в EEPROM.Далее при каждом включении контроллер сверяет на правильность коды из EEPROM, при несоответствии работа устройства блокируется.
Но для этого думаю нужно контролировать что стоит фьюз защиты от чтения EEPROM(иначе не генерить первый код) и генератор реально случайных чисел(не псевдослучайных).
Посоветуйте как это можно реализовать, или может есть способы попроще
|
|
|
|
|
 |
Ответов
(1 - 56)
|
Dec 23 2006, 02:40
|
Участник

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

|
Цитата(defunct @ Dec 23 2006, 01:29)  Да есть.. Продавать прошитые чипы. (хотя бы с Вашим бутлоадером)
А Ваш вариант к сожалению работать не будет, т.к. у Вашей прошивки не будет возможности ни залочить чип, ни проверить статус локов. Нельзя достучаться из прошивки к фузам и локам.. К сожалению передать прошитый чип нет возможности. Может всёже есть другие варианты защитить прошивку?
|
|
|
|
|
Dec 23 2006, 03:37
|

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

|
Цитата(Alex@ndr @ Dec 23 2006, 02:40)  К сожалению передать прошитый чип нет возможности. Вырезать часть функциональности и дать как демо-версию. А там уж если заказчику понравится, может быть и появится возможность передать прошитый чип. Цитата Может всёже есть другие варианты защитить прошивку? Добавить в схему еще один чип, так чтобы оба чипа могли друг-друга программировать. Добавить межпроцессорный протокол. И тогда Ваш вариант заработает. Например так: Заказчик заливает прошивку в оба чипа. Первый чип (1) подает второму (2) команду залочить себя (2) лочит (1), после чего перезапускает и сообщает (1), что тот залочен. (1) пишет в EEPROM статул лока, для того чтобы больше не просить (2) себя лочить, и генерит некий код который надо сообщить Вам по телефону. Ну а дальше уже так как Вы описали в самом первом посте. Только самое важное, чтобы программа без второго чипа была неработоспособной.
|
|
|
|
|
Dec 23 2006, 12:12
|
Профессионал
   
Группа: Свой
Сообщений: 553
Регистрация: 17-02-05
Из: Свердловская обл.
Пользователь №: 2 712

|
Можно попробовать прочитать заводскую инфу из самого чипа (к примеру - калибровочную константу CLC, она для разных экземпляров чипов будет наверняка разной, хотя совпадения и возможны), и использовать ее как идентификатор. Ваш заказчик должен будет выслать Вам значение этой калибровочной константы, а дальше - Ваша задача написать загрузчик, который будет использовать при записи контроль содержимого чипа, с блокировкой записи при несовпадении данных.
--------------------
Закономерность: Чем больше узнаю, тем меньше знаю... Любые мнения, даже ошибочные, имеют право на существование. Чем лучше узнаю людей, тем больше нравятся собаки...
|
|
|
|
|
Dec 23 2006, 13:38
|
Участник

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

|
Цитата(Валентиныч @ Dec 23 2006, 11:12)  Можно попробовать прочитать заводскую инфу из самого чипа (к примеру - калибровочную константу CLC, она для разных экземпляров чипов будет наверняка разной, хотя совпадения и возможны), и использовать ее как идентификатор. Ваш заказчик должен будет выслать Вам значение этой калибровочной константы, а дальше - Ваша задача написать загрузчик, который будет использовать при записи контроль содержимого чипа, с блокировкой записи при несовпадении данных. А как можно считать константу CLC(ну кроме как через програматор), сам контроллер может считать свою константу?
|
|
|
|
|
Dec 23 2006, 15:50
|

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

|
Цитата(defunct @ Dec 23 2006, 07:37)  Цитата(Alex@ndr @ Dec 23 2006, 02:40)  К сожалению передать прошитый чип нет возможности.
Вырезать часть функциональности и дать как демо-версию. А там уж если заказчику понравится, может быть и появится возможность передать прошитый чип. Цитата Может всёже есть другие варианты защитить прошивку? Добавить в схему еще один чип, так чтобы оба чипа могли друг-друга программировать. Добавить межпроцессорный протокол. И тогда Ваш вариант заработает. Например так: Заказчик заливает прошивку в оба чипа. Первый чип (1) подает второму (2) команду залочить себя (2) лочит (1), после чего перезапускает и сообщает (1), что тот залочен. (1) пишет в EEPROM статул лока, для того чтобы больше не просить (2) себя лочить, и генерит некий код который надо сообщить Вам по телефону. Ну а дальше уже так как Вы описали в самом первом посте. Только самое важное, чтобы программа без второго чипа была неработоспособной. Взламывается на раз, два, плюнуть - достаточно умного слэйва-напарника вместо (2) для вычисления лок-бит, ну и, естественно, программиста для всей этой раскалбасни...Хотя, тогда ни вижу смысла всей этой галиматьи...
--------------------
|
|
|
|
|
Dec 23 2006, 15:51
|
Профессионал
   
Группа: Свой
Сообщений: 553
Регистрация: 17-02-05
Из: Свердловская обл.
Пользователь №: 2 712

|
Цитата(Alex@ndr @ Dec 23 2006, 15:38)  А как можно считать константу CLC(ну кроме как через програматор), сам контроллер может считать свою константу? Насколько я знаю, эту константу можно прочитать только через программатор (ИМХО).
--------------------
Закономерность: Чем больше узнаю, тем меньше знаю... Любые мнения, даже ошибочные, имеют право на существование. Чем лучше узнаю людей, тем больше нравятся собаки...
|
|
|
|
|
Dec 23 2006, 17:06
|
Участник

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

|
Свой програматор написать несмогу, поставить второй чип наверно тоже неполучится. Может можно привязать прошивку к чему нибудь уникальному для каждого устройства, типа серийного номера или особенностей остальных элементов устройства?
|
|
|
|
|
Dec 23 2006, 18:50
|
Профессионал
   
Группа: Свой
Сообщений: 553
Регистрация: 17-02-05
Из: Свердловская обл.
Пользователь №: 2 712

|
Цитата(Alex@ndr @ Dec 23 2006, 19:06)  Свой програматор написать несмогу... А зачем писать программатор?! Нужно написать кусок кода, который при инициализации камня будет проверять значение заводской константы, прописанной в служебных битах, и при ее идентификации разрешать выполнение основной программы.
--------------------
Закономерность: Чем больше узнаю, тем меньше знаю... Любые мнения, даже ошибочные, имеют право на существование. Чем лучше узнаю людей, тем больше нравятся собаки...
|
|
|
|
|
Dec 23 2006, 20:23
|
Участник

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

|
Цитата(Валентиныч @ Dec 23 2006, 17:50)  А зачем писать программатор?! Нужно написать кусок кода, который при инициализации камня будет проверять значение заводской константы, прописанной в служебных битах, и при ее идентификации разрешать выполнение основной программы. Тоесть код для контроллера?Можно пример, как вытащить эту константу. А по поводу защиты от дизасемблирования, может можно программой проверять контрольную сумму флэша, если она не как у оригинальной прошивки, блокировать работу?Если можно, подскажите как(для CodeVision).
|
|
|
|
|
Dec 23 2006, 21:37
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(Alex@ndr @ Dec 23 2006, 20:23)  Цитата(Валентиныч @ Dec 23 2006, 17:50)  А зачем писать программатор?! Нужно написать кусок кода, который при инициализации камня будет проверять значение заводской константы, прописанной в служебных битах, и при ее идентификации разрешать выполнение основной программы.
Тоесть код для контроллера?Можно пример, как вытащить эту константу. А по поводу защиты от дизасемблирования, может можно программой проверять контрольную сумму флэша, если она не как у оригинальной прошивки, блокировать работу?Если можно, подскажите как(для CodeVision). Команда LPM очень легко и непринужденно находиться в асме,так что подпрограмму проверки контрольной суммы найти и отключить несложно,а при желании "раскусить" подпрограмму проверки пин-кода тоже можно. Если хотите 100% защиты-как уже советовали ,отсылайте прошитый камень А если не 100% - подумайте над тем ,будет ли нуждаться в ваших услугах заказчик ,если он будет иметь хакера ,если программист способен разобратся в чужом коде,то сможет написать свой не хуже вас  Ну а если ломанут,это будет большая честь для Вас,так как ломают дорогие и популярные вещи,и программеры способные создавать такие вещи как правило без работы и денег не сидят. Так что в любом случае Вы выигрываете.
|
|
|
|
|
Dec 23 2006, 21:56
|

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

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

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

|
С SIM-карты защита точно не получится.Там два кода, IMSI-ничем незащищён(его даже через мобильный можно посмотреть),KI-защищён, но у тех карт которые не клонируются, его вычислить невозможно.
Ладно, я так понял нормальной защиты всё равно неполучится, ну мне хотябы защититу от простого копирования прошивки в другой МК. Вот мне идея понравилась проверять заводскую константу CLC. Может кто-нибудь дать пример кода, как считать эту константу?
|
|
|
|
|
Dec 24 2006, 14:25
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Как вариант , 1 зашивать скриптованную программу с "внутренним" бутлоадером, 2 писать программку для ПК ,которая проверяет проверяет установку фузов. 3 при установленных фузах ,разрешает прием ключа (случайное число от МК) и возвращает дескриптор ключа и прошивки. 4 После этого "внутренний" бутлоадер распаковывает прошивку. 5 Можно добавить ,ложные байты,дескрипторы,подать "1" на порт закороченный на землю при неправильных ключах  ,короче усложнить жизнь хакеру. При таком подходе ,потребуется не только перехват потока,но и полная эмуляция программ с анализом работы шифрования,что в принципе равноценно написанию прошивки с "нуля" ,без этой головной боли.
|
|
|
|
|
Dec 25 2006, 08:11
|
Участник

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

|
C константой калибровочного бита CLC разобрался, беру в регистре OSCCAL. Буду попробовать, может и фьюзы защиты найду где брать...
|
|
|
|
|
Dec 25 2006, 10:55
|

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

|
Цитата Думаю сделать это так: при первом запуске контроллер генерит случайный код Странно что на это никто не обратил внимание? я очень извиняюсь но как вы собираетесь это сделать? - генерить случайный код? генератором случайных чисел? можно поподробнее :-) зы: может я в танке? :-)
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Dec 25 2006, 13:32
|

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

|
Цитата(add @ Dec 25 2006, 10:55)  ... но как вы собираетесь это сделать? - генерить случайный код? генератором случайных чисел? можно поподробнее :-) Это можно сделать очень просто - при первом включении прибор ждёт нажатия кнопки (или замыкания перемычки), в общем реакции заказчика, и при этом работает тот-же TCNT1 от максимальной тактовой частоты, ну а далее, использовать это значение для инициализации генератора случайных чисел. Можно сделать несколько нажатий кнопки, если хочется совсем уж случайно.
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Dec 25 2006, 14:03
|

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

|
Цитата Это можно сделать очень просто - при первом включении прибор ждёт нажатия кнопки Да, согласен. Спасибо.
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Dec 26 2006, 00:45
|
Участник

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

|
Генерировать случайные числа буду через АЦП, например так: провёл 1000 замеров, три младших разряда суммы результатов -трёхзначное случайное число. Защёт погрешности АЦП результат будет абсолютно непредсказуемый и случайный. Цитата(defunct @ Dec 25 2006, 13:20)  Это дело не сработает... Во-первых там всего 256 возможных значений из которых реально используется отсилы 20. Во-вторых бывает, что у всех МК одной партии значения калибровочных констант равны. Ну больше подходящих вариантов я невижу, а так хоть какаято защита. И ещё очень легко организуема, вызовет зависание: ... while (OSCCAL!=0x6A) { }; ... Кстати, я надеюсь калибровочную константу МК изменить нельзя?
Сообщение отредактировал Alex@ndr - Dec 26 2006, 00:52
|
|
|
|
|
Dec 26 2006, 01:30
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 12-01-05
Пользователь №: 1 915

|
Ну если есть хотя-бы минимум доверия, то можно поступить следующим образом: разделить задачу на две части, на bootloader который вы отдаете свободно, который, так сказать готовит камень заказчика (вот здесь то и нужно доверие, если вы конечно хотите знать на какое конкретно устройство все это будет установлено) который генерирует пару не симметричных ключей (DES, SHA или еще что…) и сохраняет их, открытый ключ bootloader сообщает пользователю, он вам, вы шифруете этим ключом firmware и передаете заказчику, при установке bootloader с помощью закрытого ключа его расшифровывает и программирует в камень по пути устанавливая все флаги, вот собственно и все.
Кстати, за основу можно взять Application Notes AVR231, там не так много надо переделовать
|
|
|
|
|
Dec 26 2006, 01:57
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(Alex@ndr @ Dec 26 2006, 00:45)  Ну больше подходящих вариантов я невижу, а так хоть какаято защита. И ещё очень легко организуема, вызовет зависание: делайте случайное число от таймера, проттос дело говорит. Цитата Кстати, я надеюсь калибровочную константу МК изменить нельзя? А вот и не угадали
|
|
|
|
|
Dec 26 2006, 03:48
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(fate @ Dec 26 2006, 00:30)  вот собственно и все. Перед 'все', заказчику нужно не полениться считать установившийся bootloader и затем копировать его в нужных количествах  . И зачем тогда все эти пляски? Цитата Кстати, за основу можно взять Application Notes AVR231, там не так много надо переделовать Там надо абсолютно все переделовать, ибо используемый там AES, как и вышеупомянутые, симметричный да собственно загрузчик через заднепроходное отверстие написан. Нет, я понимаю, что полученный AES ключ можно слегка изуродовать и назвать его "открытым", но главную проблему это не решит.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 26 2006, 10:35
|

Частый гость
 
Группа: Свой
Сообщений: 195
Регистрация: 25-01-06
Из: г. Троицк, МО
Пользователь №: 13 575

|
Цитата(Tanya @ Dec 26 2006, 10:19)  Вот еще такой бредовый вариант. Вы сами шьете дистанционно. При большом желании ловится сниффером...
|
|
|
|
|
Dec 26 2006, 11:01
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(TomaT @ Dec 26 2006, 10:35)  Цитата(Tanya @ Dec 26 2006, 10:19)  Вот еще такой бредовый вариант. Вы сами шьете дистанционно.
При большом желании ловится сниффером... Вот это Вы напрасно. SSH, sftp... Другое дело, что есть "подсматривающие" программы, но получив права root'а, можно все процессы в системе контролировать.
Сообщение отредактировал Tanya - Dec 26 2006, 11:02
|
|
|
|
|
Dec 26 2006, 11:43
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 22-06-06
Из: Kharkiv, UA
Пользователь №: 18 284

|
А такой вариант: прошивка совмещается с простеньким программатором (напр. byte-blaster) и передается в виде одного exe-файла. При первом удачном программировании создает ключи в реестре, скрытые файлы и т.п. ... и дальше отказывается работать. Можно попытаться хотя бы имитировать защиту покруче, что может отбить охоту заниматься взломом или запускать на другом комрьютере... понти - велика сила
|
|
|
|
|
Dec 26 2006, 20:37
|
Участник

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

|
Вон чё в даташите на AtMega16 нарыл:
Насколько я ничего не понимаю в английском, это значит что всётаки можно прочитать фьюзы и локи самим контроллером!!!Только как, для меня пока остаётся загадкой...
|
|
|
|
|
Dec 26 2006, 21:24
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 22-06-06
Из: Kharkiv, UA
Пользователь №: 18 284

|
Например, как в app.note avr109 (flash.h). Но как шифрование прошивки может помочь, если и загрузчик, и прошивку будет зашивать заказчик?
|
|
|
|
|
Dec 26 2006, 21:40
|
Участник

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

|
Цитата(ahulap @ Dec 26 2006, 20:24)  Например, как в app.note avr109 (flash.h). Спасибо, щас буду смотреть. Цитата(ahulap @ Dec 26 2006, 20:24)  Но как шифрование прошивки может помочь, если и загрузчик, и прошивку будет зашивать заказчик? См. первое сообщение. Прошивка будет неработоспособна без моего кода, единственный вариант - считать ЕЕРRОМ с уже разблокированного МК(с обеими кодами) и шить его в остальные.
|
|
|
|
|
Dec 26 2006, 22:30
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 22-06-06
Из: Kharkiv, UA
Пользователь №: 18 284

|
Цитата(Alex@ndr @ Dec 26 2006, 20:40)  См. первое сообщение. Прошивка будет неработоспособна без моего кода, единственный вариант -считать ЕЕРRОМ с уже разблокированного МК(с обеими кодами) и шить его в остальные. Но ведь прошивка открыта и посмотреть в ней таблицу соответствий или формулу вычисления ответного числа особого труда не составит. ?
|
|
|
|
|
Dec 27 2006, 00:00
|
Участник

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

|
Цитата(ahulap @ Dec 26 2006, 21:30)  Но ведь прошивка открыта и посмотреть в ней таблицу соответствий или формулу вычисления ответного числа особого труда не составит. ? Так если поставить защиту кодом + защиту по калибровочной константе + проверку контрольной суммы(чтоб прошивку труднее править было) +ещё чё нибудь придумать, это сколько головной боли будет у того кто захочет такую программу ломать. Думаю будет проще написать собственную программу, чем с такою разбиратся. Только надо ещё чтоб реализация всего этого была достаточно простой, ато защита программы получится сложнее самой программы.
|
|
|
|
|
Dec 27 2006, 01:12
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(ahulap @ Dec 26 2006, 22:30)  Но ведь прошивка открыта и посмотреть в ней таблицу соответствий или формулу вычисления ответного числа особого труда не составит. ? Ну так говорили уже,ответ может давать ПК.Будете рыться там ? Без дескрипторов ,прошивка -просто набор байтов. Дескриптор и есть сама формула и таблиц никаких не нужно. Дескриптор прошивки знает только владелец,так что в любом случае прийдется покупать. А дескриптор ключа - поможет ограничить количество копирований,при случайном числе,дескриптор всегда разный. При проверке фузов ,можно вообще застопорить выполнение каждой функции,а при записи прийдется повести долгие и приятные часы на очень хорошем симуляторе. Цитата Насколько я ничего не понимаю в английском, это значит что всётаки можно прочитать фьюзы и локи самим контроллером!!!Только как, для меня пока остаётся загадкой... Мдя,или в старых даташитах ничего не сказано или я опять прохлопал. Могу обрадовать ,можно не только прочитать но и записать. Порядок насколько понял такой. Заносим в R0 следующее значение 7 6 5 4 3 2 1 0 1 1 BLB12 BLB11 BLB02 BLB01 1 1 Записываем в SPMCR “X0001001” После чего в течении 4 тактов нужно подать команду SPM ,желательно при этом шаманстве отключить все прерывания. Проверка конца записи идет чтением фузов. Далее идут рекомендации для совместимости кода с другими камнями,но это не актуально. Теперь чтение Загружаем вектор в регистр Z=$0001 , потом устанавливаем биты BLBSET и SPMEN регистра SPMCR, далее в течение трех тактов подать LPM Проверка конца чтения по сбросу битов BLBSET и SPMEN
|
|
|
|
|
Dec 27 2006, 04:57
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 12-01-05
Пользователь №: 1 915

|
Цитата(ahulap @ Dec 26 2006, 22:30)  Но ведь прошивка открыта и посмотреть в ней таблицу соответствий или формулу вычисления ответного числа особого труда не составит. ? Это не правильно, я ведь ранее писал что загрузчик вполне может закрыть прошивку от чтения запрограмировав биты LB1 LB2
|
|
|
|
|
Dec 27 2006, 10:07
|

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

|
Делаем девайсину на контроллере залоченую, которая позволит один раз прошить(ну может два раза) контроллер заказчика и залочит его. При таком подходе стороннему программисту будет предоставлена минимальная возможность "снять" программу с линии spi(сведет к минимуму танцы с бубном и пляски..). т.е. можно конечно эмулировать контроллер и т.д. Можно прошить в контроллер прогу тест, которая ответит девайсу- программатору кодом по тому же спи, и уже в случае "положительного" ответа сразу шить основную прогу (+прошитая прога может проверить Ваш ли программатор ее прошил, иначе сотрет себя нафиг..). Это тоже конечно можно сэмулировать, но уже сложнее. зы:вообще если уж настолько заказчик пускает слюни на Вашу прогу, ну поставте условие: поднимите цену за свободное распостронение, ограничте время работы прошивки и т. д.
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Dec 27 2006, 10:56
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 22-06-06
Из: Kharkiv, UA
Пользователь №: 18 284

|
Цитата(Alex@ndr @ Dec 26 2006, 23:00)  Так если поставить защиту кодом + защиту по калибровочной константе + проверку контрольной суммы(чтоб прошивку труднее править было) +ещё чё нибудь придумать, это сколько головной боли будет у того кто захочет такую программу ломать. Думаю будет проще написать собственную программу, чем с такою разбиратся. Только надо ещё чтоб реализация всего этого была достаточно простой, ато защита программы получится сложнее самой программы. Я понял, идея такова: при первом запуске контроллер себя лочит и генерирует случайный код. Заказчик сообщает этот код автору, тот дает ответный. Заказчик вводит этот код, устройство проверяет его и работает или нет. Сам код будет закрыт, но ведь в самой прошивке можно найти место, где он проверятся (вычисление "правильного" ответа и сравнение его с введенным), и определить формулу. ничего ломать не надо.
|
|
|
|
|
Dec 28 2006, 23:44
|
Участник

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

|
Спасибо за ответы, но мож кто пример программы подкинет, как эти самые локи считать? И ещё, неохота с загрузчиком связыватся, может можно произвести чтение фьюзов или локов из основной программы?
|
|
|
|
|
Jan 17 2007, 21:42
|
Группа: Новичок
Сообщений: 1
Регистрация: 17-01-07
Пользователь №: 24 524

|
Если у Вас и заказчика "выделенка" и у заказчика есть программатор, то попробуйте использовать "Remote Administrator (Radmin) 2.2", правда в этом случае заказчик должен Вам дать права администратора на один из своих компьютеров.
|
|
|
|
|
Jan 18 2007, 10:49
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Цитата(Alex@ndr @ Dec 28 2006, 23:44)  Спасибо за ответы, но мож кто пример программы подкинет, как эти самые локи считать? И ещё, неохота с загрузчиком связыватся, может можно произвести чтение фьюзов или локов из основной программы? Могу предложить Вам аппартный программатор на любое количество записей. Когда Вам вернут программатор Вы по новому сможите задать количество записей и использовать его практически неограниченное число раз.
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|