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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Глюк симулятора в AVR Studio v4.16 build 628, А вот в v3.56 всё было нормально
demiurg_spb
сообщение May 20 2010, 13:38
Сообщение #16


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(galjoen @ May 20 2010, 15:57) *
А руки с мылом перед едой имеет смысл мыть?
Не всегда.
Цитата
Девайс не для атомной, а для дизельной станции.
Хорошо.
С проверкой RAM я соглашусь, ну а для проверки flash из приложения ИМХО разумнее вызывать функцию, находящуюся в секции загрузчика.
А то сам себя "напроверяешь"...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 20 2010, 14:27
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(demiurg_spb @ May 20 2010, 17:38) *
С проверкой RAM я соглашусь, ну а для проверки flash из приложения ИМХО разумнее вызывать функцию, находящуюся в секции загрузчика.

Доступ к загрузчику из приложения д.б. запрещён!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 20 2010, 19:13
Сообщение #18


Гуру
******

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



Цитата(galjoen @ May 20 2010, 17:27) *
Доступ к загрузчику из приложения д.б. запрещён!
На запись и в некоторых устройствах на чтение. Но как, и, главное, зачем запрещать выполнение команды JMP/RJMP на область загрузчика?


--------------------
На любой вопрос даю любой ответ
"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
V_G
сообщение May 21 2010, 03:47
Сообщение #19


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

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(galjoen @ May 21 2010, 01:27) *
Доступ к загрузчику из приложения д.б. запрещён!

Не факт. Я пользуюсь п/п записи в EEPROM (и еще чем-то) из загрузчика. Единственно, что загрузчик должен быть раз и навсегда одинаковым, чтобы адреса п/п не поплыли. Ну, или как-то особо об этом заботиться.
Go to the top of the page
 
+Quote Post
aleksey_g
сообщение May 21 2010, 07:03
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066



Цитата(galjoen @ May 20 2010, 14:57) *
Честно сказать - не знаю. А где выбирается симулятор? М.б. у меня и нет АВРСИМУЛЯТОРА 2?

В верхнем меню студии:
Debug/Select Platform and Device... - в левом окошке выбираем, каким симулятором будем пользоваться.
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 21 2010, 12:54
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Сергей Борщ @ May 20 2010, 23:13) *
На запись и в некоторых устройствах на чтение. Но как, и, главное, зачем запрещать выполнение команды JMP/RJMP на область загрузчика?

Эти запреты с целью защиты от копирования сделаны. Там, даже прерывания разрешаются только если таблица прерываний в загрузчике. Т.е. это защита от восстановления кода команды по произведённым ею изменениям.
А я о том, что программа должна с любым загрузчиком работать. И при отсутствии загрузчика вообще. Переносимость. Да и запустить программирование FLASH, при работе с несоответствующим загрузчиком есть вероятность. В т.ч. поэтому вызовов быть не должно.
А считать собственное CRC приложение просто обязано - не только контроль FLASH, но без этого защита от копирования крайне малоэффективной становится...
Цитата(aleksey_g @ May 21 2010, 11:03) *
В верхнем меню студии:
Debug/Select Platform and Device... - в левом окошке выбираем, каким симулятором будем пользоваться.

Спасибо, нашёл.
Там у меня AT90CAN128 в списке нет. Сейчас посмотрю у кого, из тех, что есть, 128 FLASH и RAMPZ0 на том же месте. Нет, сначала новую версию скачаю. М.б. там есть?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 21 2010, 14:07
Сообщение #22


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(galjoen @ May 21 2010, 16:54) *
А считать собственное CRC приложение просто обязано - не только контроль FLASH, но без этого защита от копирования крайне малоэффективной становится...
Типа это повышает защиту... Ну-ну...


Цитата(galjoen @ May 21 2010, 16:54) *
Переносимость.

Точнее независимость от загрузчика - вот единственный соящий аргумент.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 21 2010, 14:42
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(demiurg_spb @ May 21 2010, 18:07) *
Типа это повышает защиту... Ну-ну...

Да, повышает, и ирония тут не уместна. Если по 1-му байту за раз потихоньку CRC считать. И запускать подсчёт по нечастому событию, только не по таймеру. И по несовпадению флаг выставлять (через указатель), а реагировать на него в других местах...
При размере прошивки в несколько десятков килобайт такую защиту найти нереально. И, соответственно, в такой прошивке изменить что-либо нереально.

Ах да. Ещё нужно какой-нибудь малоизвестный производящий многочлен использовать. Можно даже самодельный. Иначе изменят так, что CRC совпадёт...
Go to the top of the page
 
+Quote Post
=GM=
сообщение May 21 2010, 14:58
Сообщение #24


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



galjoen, CRC на десятке килобайт может споткнуться, может сразу MD5 считать? Сильная вещь, если кто понимает, использовал её всего один раз для страшной организации по названию FIA.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 22 2010, 08:18
Сообщение #25


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(galjoen @ May 21 2010, 18:42) *
При размере прошивки в несколько десятков килобайт такую защиту найти нереально.
И, соответственно, в такой прошивке изменить что-либо нереально.

Просто тот кто для начала сломает аппаратную защиту (Lock-битную) наверняка с любой программной справится на раз.
И я всё в голову не возьму для чего защищать от изменения?
От копирования понятно, от чтения на предмет реверс-инженеринга тоже.
Цитата
Ах да. Ещё нужно какой-нибудь малоизвестный производящий многочлен использовать. Можно даже самодельный. Иначе изменят так, что CRC совпадёт...

Мёртвому припарки и паранойя ИМХО.
Цитата(=GM= @ May 21 2010, 18:58) *
galjoen, CRC на десятке килобайт может споткнуться, может сразу MD5 считать? Сильная вещь, если кто понимает,

CRC32 вполне хватает.
Цитата
использовал её всего один раз для страшной организации по названию FIA.

Для Формулы-1? :-)


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 24 2010, 09:37
Сообщение #26


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(=GM= @ May 21 2010, 18:58) *
galjoen, CRC на десятке килобайт может споткнуться, может сразу MD5 считать? Сильная вещь, если кто понимает, использовал её всего один раз для страшной организации по названию FIA.

Хотел MD5 в загрузчике считать, но там места для этого не хватило.
Цитата(demiurg_spb @ May 22 2010, 12:18) *
Просто тот кто для начала сломает аппаратную защиту (Lock-битную) наверняка с любой программной справится на раз.
И я всё в голову не возьму для чего защищать от изменения?
От копирования понятно, от чтения на предмет реверс-инженеринга тоже.

А зачем защиту в процессоре ломать, если можно просто обновлённое приложение в виде hex-файла скачать? Хоть и в зашифрованном виде. А уже потом сломать. Ресурс флеша 10000 записей... Вот тут MD5 в загрузчике помогла бы, но нет её с сожалению...
А во многих случаях как раз от изменения нужно защищать, а не от копирования.
На примере простейшего загрузчика с шифрованием, который здесь выкладывался, расскажу как защиту ломать. У того загрузчика просто ксорились страницы flash таблицей 256 байт. Тут уже некоторые байты известны т.к. в таблице переходов наверняка jmp/rjmp стоят. Но даже и без этого можно сломать. Достаточно менять по 1 байту до тех пор пока не попадёшь на какое-нибудь сообщение во flash. А у 99% сообщения из flash выводятся. Ну вот, сразу и будет видно какая там таблица ксоров. А дальше уже просто на другой странице свой кусочек кода добавляется.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 24 2010, 10:08
Сообщение #27


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(galjoen @ May 24 2010, 13:37) *
А зачем защиту в процессоре ломать, если можно просто обновлённое приложение в виде hex-файла скачать? Хоть и в зашифрованном виде. А уже потом сломать.
+1
Цитата
Ресурс флеша 10000 записей... Вот тут MD5 в загрузчике помогла бы, но нет её с сожалению...
А причём тут ресурс флеша?

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

Цитата
Тут уже некоторые байты известны т.к. в таблице переходов наверняка jmp/rjmp стоят.
Кто же так по-простецки поступает???

Цитата
Но даже и без этого можно сломать. Достаточно менять по 1 байту до тех пор пока не попадёшь на какое-нибудь сообщение во flash. А у 99% сообщения из flash выводятся. Ну вот, сразу и будет видно какая там таблица ксоров. А дальше уже просто на другой странице свой кусочек кода добавляется.
Если бы всё было "так просто"...

Но Вы меня так и не переубедили (а я Вас) в том что нужно (не нужно) в самом приложении проверять его целостность...
На мой взгляд - никакого практического смысла нет. И пусть даже оно работает месяцами без перезагрузки - шансы успеть отловить такую бяку на лету очень малы (по моим оценкам сильно меньше 1%). А раз так то и незачем морочиться с этим, а Вы тут о MD5 мечтаете... Тут уже абсолютно не важно что CRC32 что MD5, что ещё более "крутое"...
Важно лишь одно - хорошо зашифровать файл с обновлением - остальное пыль.

Жму Вашу мужественную руку. Приятно было с Вами дискутировать.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
=GM=
сообщение May 26 2010, 21:53
Сообщение #28


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(demiurg_spb @ May 22 2010, 07:18) *
CRC32 вполне хватает

Не скажите, уже и в MD5 нашли дырки, так что у меня еще и seed буфер стоит и динамически меняется этой самой федерацией автомотоспорта на ходу.

Цитата(demiurg_spb @ May 22 2010, 07:18) *
Для Формулы-1? :-)

Ну вообще-то да, но как вы догадались?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 27 2010, 09:15
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(demiurg_spb @ May 24 2010, 14:08) *
Но Вы меня так и не переубедили (а я Вас) в том что нужно (не нужно) в самом приложении проверять его целостность...

Раз уж зашла речь по автомобили, то там как раз это нужно. Допустим кто-то написал прошивку для ЭБУ, откатал на машине, и не хочет чтобы другие таблицы его настроек меняли (тюнинговали). А прошивку эту зашифровать в принципе невозможно - ну нет в загрузчике у стандартного ЭБУ никакого шифрования. И таблицы скрыть/зашифровать тоже невозможно, т.к. прошивка на 70% из них состоит. Да на расшифровывание и времени нет. Вот тут как раз проверка приложением собственной целостности и нужна.

Ну ладно, что то мы от темы отошли. Пока не проверил я АВРСИМУЛЯТОР2 - нет доступа к широкому каналу интернета, чтобы последнюю версию AVR Studio скачать.
Go to the top of the page
 
+Quote Post
aleksey_g
сообщение May 27 2010, 15:18
Сообщение #30


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066



Посмотрел у себя. Студия 4.18 Build 692.
Для АВРСИМУЛЯТОР2 Ваш контроллер недоступен.
Go to the top of the page
 
+Quote Post

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

 


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


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