d7d1cd 0 18 августа, 2015 Опубликовано 18 августа, 2015 · Жалоба Привет всем! Мне необходимо написать свою программу для устройства на МК MSP430F249 так, чтобы она работала только в данном конкретном устройстве. Подскажите, как это можно сделать? Получается, что программе надо каким то образом идентифицировать МК, в котором она выполняется, на признак "свой" или "чужой" (если "чужой", то прекратить работу). Припоминается, что где-то я читал информацию о том, что каждый МК указанной марки хранит в ПЗУ для загрузчика BSL некий номер, уникальный для данного МК. Или я это выдумал?.. Есть ли нечто подобное в указанных МК? P.S. Прожиг фьюза JTAG не предлагать, ибо программирование устройства будет делать другой человек, который заинтересован в использовании программы на нескольких устройствах (а я против этого). И еще: я понимаю, что любую защиту можно взломать, поэтому прошу не указывать на это и не говорить, что все попытки данной защиты бесполезны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 30 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба BSL через УАПП: Access to the MSP430 flash memory via the BSL is protected by a 256-bit userdefined password. For more details see the MSP430 Programming Via the Bootstrap Loader User's Guide (SLAU319). А фузы всё равно пережигать, потому как JTAGом вычитывается вся память. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
d7d1cd 0 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба BSL через УАПП: Access to the MSP430 flash memory via the BSL is protected by a 256-bit userdefined password. For more details see the MSP430 Programming Via the Bootstrap Loader User's Guide (SLAU319). А фузы всё равно пережигать, потому как JTAGом вычитывается вся память. Видимо Вы не поняли постановки задачи (почитайте первый пост внимательно). Мне необходимо сделать так, чтобы программа выполнялась только в конкретном МК. При ее загрузке в другой МК, программа "понимает", что она в "чужом" МК и прекращает свое выполнение (пустой бесконечный цикл, например). Вопрос в том, как сделать идентификацию, что МК "свой". Если бы в каждом МК был уникальный номер, то это было бы легко сделать (или такой номер есть в МК?). Есть еще идея как-то использовать микросхемы памяти, подключенные к МК (может быть в них есть что-то уникальное), но пока не знаю как. Есть ли какие-то сображения по этому вопросу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 30 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба "Припоминается, …, что каждый МК указанной марки хранит в ПЗУ для загрузчика BSL некий номер, уникальный для данного МК." Я привел из документации, что это за номер такой требуется BSL, это раз; "серийного" номера проца на борту проца нет, это два; есть некая TLV Structure с калибровочными данными, они должны по идее быть уникальными, но… короче, тут вам думать, это три. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
d7d1cd 0 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба Я привел из документации, что это за номер такой требуется BSL, это раз; Этот номер - таблица векторов прерываний. Он пароль для BSL. Мне он не подходит. "серийного" номера проца на борту проца нет, это два; Это плохо... есть некая TLV Structure с калибровочными данными, они должны по идее быть уникальными, но… короче, тут вам думать, это три. Уверен, что эта структура хранится в FLASH памяти. Ее можно скопировать. Значит тоже не подходит. Буду, наверное, использовать внешнюю память. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба вместо внешней памяти использовать недорогой микроконтроллер, подключаемый по SPI или I2C. Протокол свой-чужой - подобный методе лицензирования IAR через интернет. Т.е. основной контроллер пытается получить у "держателя лицензий" разрешение на работу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
d7d1cd 0 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба вместо внешней памяти использовать недорогой микроконтроллер, подключаемый по SPI или I2C. Протокол свой-чужой - подобный методе лицензирования IAR через интернет. Т.е. основной контроллер пытается получить у "держателя лицензий" разрешение на работу. Устройства с МК, для которых надо защитить программу, уже выпущены. В них нельзя добавить что-то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба Ага, тогда понятно. У меня аналогичная ситуация, которая решилась пережигом JTAG и дальнейшей работой с BSL. Если надо не защита, а примитивное ограничение доступа - прописывайте в INFO-сегменты серийные номера, хеши-CRC. Делайте "индивидуальные" прошивки для каждого девайса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
d7d1cd 0 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба Ага, тогда понятно. У меня аналогичная ситуация, которая решилась пережигом JTAG и дальнейшей работой с BSL. Если надо не защита, а примитивное ограничение доступа - прописывайте в INFO-сегменты серийные номера, хеши-CRC. Делайте "индивидуальные" прошивки для каждого девайса. Вот как раз сделать "индивидуальные" прошивки для каждого девайса мне и нужно. Однако эту прошивку я не сам буду заливать в МК. Но в то же время в моих интересах сделать так, чтобы эта прошивка работала только в одном устройстве. В противном случае, человек один раз купит у меня прошивку и будет заливать ее в такое количество устройств, какое захочет. Ваш совет о прописывании в INFO-сегменты серийных номеров, как я понимаю, тут применить нельзя. В устройствах, для которых пишется программа, есть микросхема памяти, а так же микросхема-драйвер ЖК дисплея. Сейчас я думаю, как можно использовать эти устройства для решения моей задачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба как можно использовать эти устройства для решения моей задачи. А я думаю, что если Вы сами будете заливать прошивку дистанционно, то это шанс... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
d7d1cd 0 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба А я думаю, что если Вы сами будете заливать прошивку дистанционно, то это шанс... Так так... Как залить дистанционно? Team Viewer? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Abell 0 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба Вот как раз сделать "индивидуальные" прошивки для каждого девайса мне и нужно. Однако эту прошивку я не сам буду заливать в МК. Прошивка - в Ваших руках, все железо - в руках другого человека, правильно понял? Вот чего не понял - каким образом, не зная серийников железа, вставить их в прошивку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
d7d1cd 0 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба Прошивка - в Ваших руках, все железо - в руках другого человека, правильно понял? Все правильно. Вот чего не понял - каким образом, не зная серийников железа, вставить их в прошивку? Устройства могут обмениваться информацией с компьютером. Сначала необходимо отправить заказчику прошивку, которая по запросу с компьютера выдаст серийник железа. Программа на компьютере сохранит его в файле, заказчик пришлет файл мне. Я на основе этого серийника сделаю итоговую прошивку и вышлю заказчику. Как то так... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба Так так... Как залить дистанционно? Team Viewer? Только принцип... Ваш недруг должен поставить на машине UNIX, который Вы закажете, и дать Вам пароль суперпользователя. Как с Винд* - не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
d7d1cd 0 19 августа, 2015 Опубликовано 19 августа, 2015 · Жалоба Только принцип... Ваш недруг должен поставить на машине UNIX, который Вы закажете, и дать Вам пароль суперпользователя. Как с Винд* - не знаю. Хорошо, дистанционный доступ есть. Я должен буду залить прошивку и прожечь JTAG. И никакой защиты мудить мудрить не надо. Верно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться