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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Как прочитать code flash из самого МК?
hwdev
сообщение Jun 20 2009, 16:46
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 334
Регистрация: 1-09-06
Из: Москва
Пользователь №: 20 008



Для контроля CRC флеш памяти контроллера f169 нужно считывать его флеш и выдавать наружу. Как это попроще сделать в IAR?
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 20 2009, 18:57
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(hwdev @ Jun 20 2009, 19:46) *
Для контроля CRC флеш памяти контроллера f169 нужно считывать его флеш и выдавать наружу. Как это попроще сделать в IAR?

Не понял вопроса.
1. Компилятор сам может посчитать контрольную сумму и сохранить по нужному адресу, а Ваша программа - сравнить рассчитанную сумму с ожидаемой и моргнуть светодиодом.
2. Если речь идет о считывании программатором, то где гарантии, что флэш не слетит во время работы?
3. Если речь идет о чтении флэш и передаче по интерфейсу, то в чем проблемы?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
hwdev
сообщение Jun 21 2009, 06:47
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 334
Регистрация: 1-09-06
Из: Москва
Пользователь №: 20 008



Цитата(Dog Pawlowa @ Jun 20 2009, 22:57) *
Не понял вопроса.
1. Компилятор сам может посчитать контрольную сумму и сохранить по нужному адресу, а Ваша программа - сравнить рассчитанную сумму с ожидаемой и моргнуть светодиодом.
2. Если речь идет о считывании программатором, то где гарантии, что флэш не слетит во время работы?
3. Если речь идет о чтении флэш и передаче по интерфейсу, то в чем проблемы?

Нужно именно считывать всю флеш и передавать её содержимое стороннему процессору. Тот будет принимать решение о валидности содержимого (заморочки спецсвязи). Т.е. можно просто поставить указатель на 0xFFFF и читать до упора или же нужны специальные функции доступа?
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 21 2009, 08:54
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(hwdev @ Jun 21 2009, 09:47) *
Т.е. можно просто поставить указатель на 0xFFFF и читать до упора или же нужны специальные функции доступа?

Да ничего не нужно, это же архитектура от фон Неймана, единое пространство памяти, даже модификаторы для указателей не нужны.
А вот куда указатели ставить и где упор... Правильнее ограничить область чтения и читать только заведомо существующую флэш, что зависит от контроллера.
Иначе Ваша спецсвязь никогда не свяжется smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 21 2009, 14:25
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(hwdev @ Jun 21 2009, 10:47) *
Нужно именно считывать всю флеш и передавать её содержимое стороннему процессору. Т

Позаботьтесь ещё о защите данной команды от несанкционированного доступа, чтобы враги не смогли слить содержимое флеши и разобраться в секретных заморочках вашей спецсвязи.
Например, загрузчик BSL использует в качестве пароля содержимое секции векторов прерывания (64 байта). Вероятность подбора невелика, особенно если на неиспользуемые вектора ставить заглушки (как делает mspgcc), а не оставлять 0xFFFF, как делает IAR.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
hwdev
сообщение Jun 21 2009, 20:14
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 334
Регистрация: 1-09-06
Из: Москва
Пользователь №: 20 008



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

И как тогда организовать проверку пароля? Передавать в МК - считают и подставят. Кодировать кусочек флеша, накладывая маску, и отсылая процессору? Несерьезно, набирается статистика и обнаруживается маска в два счета. Куда пароль передвать или где его проверять?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 21 2009, 20:40
Сообщение #7


Гуру
******

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



Цитата(MrYuran @ Jun 21 2009, 17:25) *
Позаботьтесь ещё о защите данной команды от несанкционированного доступа, чтобы враги не смогли слить содержимое флеши и разобраться в секретных заморочках вашей спецсвязи.

Спокойно. Этого не надо - от врагов самая надежная защита пластилиновая печать. Короче, в России главным считается совпадение с эталоном. Остальное не есть забота разработчика.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
=DS=
сообщение Jun 22 2009, 22:17
Сообщение #8


Участник
*

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



Цитата(hwdev @ Jun 21 2009, 10:47) *
Нужно именно считывать всю флеш и передавать её содержимое стороннему процессору. Тот будет принимать решение о валидности содержимого (заморочки спецсвязи).

Простите за любопытство, а какой в этом смысл? Для защиты от случайного повреждения программы достаточно контрольной суммы, а обнаружить закладку так не получится - любая хоть чуть-чуть уважающяя себя закладка просто перехватит выдаваемый наружу поток и подправит, чтобы скрыть свое присутствие...
Нет, в общем-то понятно, что заказчик хотел, то пусть и получит, просто не могу понять, чем вообще такое требование мотивировано?

Цитата(hwdev @ Jun 22 2009, 00:14) *
И как тогда организовать проверку пароля? Передавать в МК - считают и подставят. Кодировать кусочек флеша, накладывая маску, и отсылая процессору? Несерьезно, набирается статистика и обнаруживается маска

Действительно, зачем еще какие-то пароли (которые еще и перехватить могут !!!), когда и так все содержимое флешки тупо вываливается наружу по первой просьбе biggrin.gif

А если всерьез, то считать ГАРАНТИРОВАННО ПОДЛИННОЕ содержимое флешки можно через JTAG или BSL. Через BSL проще чем через JTAG.

Сообщение отредактировал =DS= - Jun 22 2009, 22:34
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 23 2009, 08:22
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(=DS= @ Jun 23 2009, 01:17) *
Нет, в общем-то понятно, что заказчик хотел, то пусть и получит, просто не могу понять, чем вообще такое требование мотивировано?

Вы просто со многим не сталкивались.
Даже в обычных коммерческих системах бывают случаи когда после сертификации не допускается менять код.
Что ж говорить о системе защиты связи?
Или, например, подмена ПО игрового автомата с ПРАВИЛЬНОЙ контрольной суммой приведет к тому, что клиент никогда не выиграет. Доставай чистые денежки и все.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
=DS=
сообщение Jun 23 2009, 08:41
Сообщение #10


Участник
*

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



Цитата(Dog Pawlowa @ Jun 23 2009, 12:22) *

Да нет, цель-то всего этого понятна, я говорил немного о другом - поскольку контроллер будет САМ выдавать содержимое своей флеши, какая у Вас гарантия, что оно подлинное?
Т.е. какой смысл требовать у контроллера выдать содержимое флешки, если полученной информации нельзя доверять?

Сообщение отредактировал =DS= - Jun 23 2009, 09:20
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 23 2009, 10:41
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



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

Вспомним цели контроля и логические операции smile.gif

Как может микроконтроллер, в частности MSP430, выдать данные о флэш-памяти, соответствующие эталонным, и при этом работать по другой программе? - У него просто нет больше места.

То есть любое отклонение трактуется как несоответствие и работа невозможна.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
=DS=
сообщение Jun 23 2009, 14:39
Сообщение #12


Участник
*

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



Цитата(Dog Pawlowa @ Jun 23 2009, 14:41) *
Как может микроконтроллер, в частности MSP430, выдать данные о флэш-памяти, соответствующие эталонным, и при этом работать по другой программе? - У него просто нет больше места.

Без проблем. Ему же не нужно будет параллельно основной деятельности еще и втихаря рассчитывать баллистическую орбиту rolleyes.gif . Модифицирован будет небольшой кусочек кода (допустим, в Вашем примере, отвечающий за выигрыш) и процедура вывода содержимого флешки, подставляющяя при выводе "правильный" образ памяти в той части, где она отличается от действительного (в том числе и собственный код, естественно). Ресурсов это практически жрать не будет - сотня-другая байт.

Сообщение отредактировал =DS= - Jun 23 2009, 15:04
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 23 2009, 15:08
Сообщение #13


Гуру
******

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



Цитата(=DS= @ Jun 23 2009, 01:17) *
Простите за любопытство, а какой в этом смысл?

Смысла, естественно, нет никакого. Обычное требование оставшееся по скудоумию со времен перфолент и прочих внешних носителей. При этом совершенно естественным даже в те времена считалось, что если враг получит доступ к объекту, от модификации НЕ СПАСЕТ НИЧЕГО и защищать ОПИСАННЫМ ОБРАЗОМ можно и нужно не железо, или те-же самые хотя-бы прошитые загрузчики с перфоленты а именно внешние носители к которым потенциально проще получить доступ. Носители с которых каждый раз осуществляется загрузка исчезли, но тупые исполнители хотят и дальше пребывать при исполнении обязанностей sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 23 2009, 16:09
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(=DS= @ Jun 23 2009, 17:39) *
Без проблем...

Ну нет, слишком большие упрощения. smile.gif
Принимаем, что аппаратура не изменилась (то есть флэшка с неба не свалилась), а вся память занята программным кодом и простому утаптыванию не поддается.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 23 2009, 16:18
Сообщение #15


Гуру
******

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



Цитата(Dog Pawlowa @ Jun 23 2009, 19:09) *
Ну нет, слишком большие упрощения. smile.gif

Совершенно обычные реалии, сколько Вы обычно битиков правите для лечения?
А вот Вы далее начинаете совершенные натягивание за уши.
Цитата
Принимаем, что аппаратура не изменилась (то есть флэшка с неба не свалилась),

Тогда не изменилась и прошивка.
Цитата
а вся память занята программным кодом и простому утаптыванию не поддается.

Ну да,совершенно, типа,обычное явление smile.gif smile.gif smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 1st July 2025 - 01:50
Рейтинг@Mail.ru


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