|
Как прочитать code flash из самого МК? |
|
|
|
Jun 20 2009, 18:57
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(hwdev @ Jun 20 2009, 19:46)  Для контроля CRC флеш памяти контроллера f169 нужно считывать его флеш и выдавать наружу. Как это попроще сделать в IAR? Не понял вопроса. 1. Компилятор сам может посчитать контрольную сумму и сохранить по нужному адресу, а Ваша программа - сравнить рассчитанную сумму с ожидаемой и моргнуть светодиодом. 2. Если речь идет о считывании программатором, то где гарантии, что флэш не слетит во время работы? 3. Если речь идет о чтении флэш и передаче по интерфейсу, то в чем проблемы?
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jun 21 2009, 06:47
|
Местный
  
Группа: Свой
Сообщений: 334
Регистрация: 1-09-06
Из: Москва
Пользователь №: 20 008

|
Цитата(Dog Pawlowa @ Jun 20 2009, 22:57)  Не понял вопроса. 1. Компилятор сам может посчитать контрольную сумму и сохранить по нужному адресу, а Ваша программа - сравнить рассчитанную сумму с ожидаемой и моргнуть светодиодом. 2. Если речь идет о считывании программатором, то где гарантии, что флэш не слетит во время работы? 3. Если речь идет о чтении флэш и передаче по интерфейсу, то в чем проблемы? Нужно именно считывать всю флеш и передавать её содержимое стороннему процессору. Тот будет принимать решение о валидности содержимого (заморочки спецсвязи). Т.е. можно просто поставить указатель на 0xFFFF и читать до упора или же нужны специальные функции доступа?
|
|
|
|
|
Jun 21 2009, 08:54
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(hwdev @ Jun 21 2009, 09:47)  Т.е. можно просто поставить указатель на 0xFFFF и читать до упора или же нужны специальные функции доступа? Да ничего не нужно, это же архитектура от фон Неймана, единое пространство памяти, даже модификаторы для указателей не нужны. А вот куда указатели ставить и где упор... Правильнее ограничить область чтения и читать только заведомо существующую флэш, что зависит от контроллера. Иначе Ваша спецсвязь никогда не свяжется
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jun 21 2009, 20:14
|
Местный
  
Группа: Свой
Сообщений: 334
Регистрация: 1-09-06
Из: Москва
Пользователь №: 20 008

|
Цитата(MrYuran @ Jun 21 2009, 18:25)  Позаботьтесь ещё о защите данной команды от несанкционированного доступа, чтобы враги не смогли слить содержимое флеши и разобраться в секретных заморочках вашей спецсвязи. Например, загрузчик BSL использует в качестве пароля содержимое секции векторов прерывания (64 байта). Вероятность подбора невелика, особенно если на неиспользуемые вектора ставить заглушки (как делает mspgcc), а не оставлять 0xFFFF, как делает IAR. И как тогда организовать проверку пароля? Передавать в МК - считают и подставят. Кодировать кусочек флеша, накладывая маску, и отсылая процессору? Несерьезно, набирается статистика и обнаруживается маска в два счета. Куда пароль передвать или где его проверять?
|
|
|
|
|
Jun 22 2009, 22:17
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-09-07
Пользователь №: 30 836

|
Цитата(hwdev @ Jun 21 2009, 10:47)  Нужно именно считывать всю флеш и передавать её содержимое стороннему процессору. Тот будет принимать решение о валидности содержимого (заморочки спецсвязи). Простите за любопытство, а какой в этом смысл? Для защиты от случайного повреждения программы достаточно контрольной суммы, а обнаружить закладку так не получится - любая хоть чуть-чуть уважающяя себя закладка просто перехватит выдаваемый наружу поток и подправит, чтобы скрыть свое присутствие... Нет, в общем-то понятно, что заказчик хотел, то пусть и получит, просто не могу понять, чем вообще такое требование мотивировано? Цитата(hwdev @ Jun 22 2009, 00:14)  И как тогда организовать проверку пароля? Передавать в МК - считают и подставят. Кодировать кусочек флеша, накладывая маску, и отсылая процессору? Несерьезно, набирается статистика и обнаруживается маска Действительно, зачем еще какие-то пароли (которые еще и перехватить могут !!!), когда и так все содержимое флешки тупо вываливается наружу по первой просьбе  А если всерьез, то считать ГАРАНТИРОВАННО ПОДЛИННОЕ содержимое флешки можно через JTAG или BSL. Через BSL проще чем через JTAG.
Сообщение отредактировал =DS= - Jun 22 2009, 22:34
|
|
|
|
|
Jun 23 2009, 08:22
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(=DS= @ Jun 23 2009, 01:17)  Нет, в общем-то понятно, что заказчик хотел, то пусть и получит, просто не могу понять, чем вообще такое требование мотивировано? Вы просто со многим не сталкивались. Даже в обычных коммерческих системах бывают случаи когда после сертификации не допускается менять код. Что ж говорить о системе защиты связи? Или, например, подмена ПО игрового автомата с ПРАВИЛЬНОЙ контрольной суммой приведет к тому, что клиент никогда не выиграет. Доставай чистые денежки и все.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jun 23 2009, 08:41
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-09-07
Пользователь №: 30 836

|
Цитата(Dog Pawlowa @ Jun 23 2009, 12:22)  Да нет, цель-то всего этого понятна, я говорил немного о другом - поскольку контроллер будет САМ выдавать содержимое своей флеши, какая у Вас гарантия, что оно подлинное? Т.е. какой смысл требовать у контроллера выдать содержимое флешки, если полученной информации нельзя доверять?
Сообщение отредактировал =DS= - Jun 23 2009, 09:20
|
|
|
|
|
Jun 23 2009, 10:41
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(=DS= @ Jun 23 2009, 11:41)  Да нет, цель-то всего этого понятна, я говорил немного о другом - поскольку контроллер будет САМ выдавать содержимое своей флеши, какая у Вас гарантия, что оно подлинное? Т.е. какой смысл требовать у контроллера выдать содержимое флешки, если полученной информации нельзя доверять? Вспомним цели контроля и логические операции  Как может микроконтроллер, в частности MSP430, выдать данные о флэш-памяти, соответствующие эталонным, и при этом работать по другой программе? - У него просто нет больше места. То есть любое отклонение трактуется как несоответствие и работа невозможна.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jun 23 2009, 14:39
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-09-07
Пользователь №: 30 836

|
Цитата(Dog Pawlowa @ Jun 23 2009, 14:41)  Как может микроконтроллер, в частности MSP430, выдать данные о флэш-памяти, соответствующие эталонным, и при этом работать по другой программе? - У него просто нет больше места. Без проблем. Ему же не нужно будет параллельно основной деятельности еще и втихаря рассчитывать баллистическую орбиту  . Модифицирован будет небольшой кусочек кода (допустим, в Вашем примере, отвечающий за выигрыш) и процедура вывода содержимого флешки, подставляющяя при выводе "правильный" образ памяти в той части, где она отличается от действительного (в том числе и собственный код, естественно). Ресурсов это практически жрать не будет - сотня-другая байт.
Сообщение отредактировал =DS= - Jun 23 2009, 15:04
|
|
|
|
|
Jun 23 2009, 15:08
|

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

|
Цитата(=DS= @ Jun 23 2009, 01:17)  Простите за любопытство, а какой в этом смысл? Смысла, естественно, нет никакого. Обычное требование оставшееся по скудоумию со времен перфолент и прочих внешних носителей. При этом совершенно естественным даже в те времена считалось, что если враг получит доступ к объекту, от модификации НЕ СПАСЕТ НИЧЕГО и защищать ОПИСАННЫМ ОБРАЗОМ можно и нужно не железо, или те-же самые хотя-бы прошитые загрузчики с перфоленты а именно внешние носители к которым потенциально проще получить доступ. Носители с которых каждый раз осуществляется загрузка исчезли, но тупые исполнители хотят и дальше пребывать при исполнении обязанностей  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 23 2009, 16:18
|

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

|
Цитата(Dog Pawlowa @ Jun 23 2009, 19:09)  Ну нет, слишком большие упрощения.  Совершенно обычные реалии, сколько Вы обычно битиков правите для лечения? А вот Вы далее начинаете совершенные натягивание за уши. Цитата Принимаем, что аппаратура не изменилась (то есть флэшка с неба не свалилась), Тогда не изменилась и прошивка. Цитата а вся память занята программным кодом и простому утаптыванию не поддается. Ну да,совершенно, типа,обычное явление
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|