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

 
 
19 страниц V  « < 3 4 5 6 7 > »   
Closed TopicStart new topic
> Защита секция кода во FLASH в ATmega, Как защититься от несанкционированного выполнения кода
Дон Амброзио
сообщение Feb 13 2008, 12:25
Сообщение #61


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(defunct @ Feb 13 2008, 15:13) *
Так красиво ответить на хамские посты, глубочайший respect!

А кто хамил? И где? И почему бы Вам свои благодарности было не написать в привате? Зачем тему-то замусоривать?


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 13 2008, 12:47
Сообщение #62


кекс
******

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



Цитата(Дон Амброзио @ Feb 12 2008, 01:31) *
2) Что можно применить кроме WDT высказлся только Непомнящий Евгений, а что же остальные?

Вы же и так все знаете, зачем Вам еще что-то советовать?!

Цитата
Но это я конечно погорячился, но если встанет такая дилема - я пойду на это

Горячий испанский парень.


Цитата
Вот Вам ответ.. От себя лишь добавллю термин "счётчик-ограничитель количества итераций цикла" Вам о чём-нибудь говорит?

это еще что за зверь такой "счетчик ограничитель". В RTOS каждая задача - это бесконечный цикл.

Цитата
Мне это хорошо известно.. Но я с такими пока не работал...

Слова дойстойные анекдота. smile.gif

Цитата
Тема то у нас гораздо шире.. Или просто никто больше не знает других методов "борьбы" с явлением, указанном в названии темы?

тема ваша тупая на самом деле, и в том виде в каком задача поставлена в первом посте - не имеет решения вообще.

Цитата
Не звизди..

Куда смотрят модераторы?! Пора бы немного остудить гарячего парня.

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

50% боксер / 50% сторожевая собака © какой-то мультик

Цитата
Чуть-чуть пошевелить мозгами для Вас мучение?

опять хамство.

Цитата
У меня наприммер в моих программах работающих в среде моей же RTOS

smile.gif

Цитата
Спасибо Вам большое...Я давно уже хотел Вам это предложить... Да стеснялся.. Боялся Вас обидеть...

полное хамство.

Цитата
А кто хамил? И где? И почему бы Вам свои благодарности было не написать в привате? Зачем тему-то замусоривать?

Вы. В каждом посте. Потому что меня Ваша манера ведения дискуссии просто бесит. Пришел всезнающий барин, и давай всем объяснять какаие они л...и., какой уж тут приват.
Тему эту уже не замусоришь, она и так замусорена вашими постами "от и до".
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 13 2008, 12:50
Сообщение #63


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А у вас как с ЭМС? С наносекундными импульсами? Если скажете, что от них не сбивается (класс A) - не поверю!!!


У меня стандарт на оборудование (EN54) требует не сбиваться, максимум - кратковременное нарушение индикации (ну типа, когда статразряд влетает в светодиод, он подмигивает wink.gif ). И работает.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
mig2002
сообщение Feb 13 2008, 13:20
Сообщение #64





Группа: Новичок
Сообщений: 9
Регистрация: 12-02-08
Пользователь №: 34 985



Цитата(Дон Амброзио @ Feb 13 2008, 14:09) *
Оно и понятно. А Вы как решаете проблему обнаружения в программе несанкционированных переходов?

Я использую и STATE, и WDT, и программные таймауты. А вообще стараюсь писать, чтобы была однозначность во всех ситуациях. А что касается несанкционированных помех и т.д., то эти вопросы лучше решать другими способами (экранами, фильтрами, убрать подальше от источника помех.....).
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Feb 13 2008, 13:26
Сообщение #65


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Считаю своим долгом всем напомнить, что неплохо бы поостыть и прекратить обсуждать личности.
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 13 2008, 13:50
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Недавно дорабатывал текстовое информационное табло. Разработчиком была допущена ошибка в проектировании ПП, в результате табло "ловило" помехи очень стабильно. Инженерам приходилось выезжать на место и пересбрасывать питание.

Во-первых, доработал программу. Табло реализовывало динамическую развертку (100Гц). В разверточном прерывании вставил WDR после проверки нескольких таймаутов. Логика такая:
1. Разверточное прерывание нужно всегда, т.е. это гарантированная точка входа с частотой 100Гц. Его задача разворачивать ВидеоОЗУ;
2. Поставил таймаут на прием данных по последовательному интерфейсу. Задача приемника принять данные и поместить их в буфер;
3. Поставил таймаут в MAINLOOP. В главном цикле проверялось пришли ли новые данные и при необходимости записывалось ВидеоОЗУ;
4. В разверточном прерывании проверял таймауты от приемника и главного цикла, если они не истекли, то сбрасывал сторожевой таймер.

Таким образом, я гарантировал, что разверточное прерывание будет всегда; не зависнет конечный автомат приемника (таймаут приемника) и принятые данные попадут в буфер; в главном цикле принятые данные из буфера перепишутся в ВидеоОЗУ, развертка которого гарантирована.

Табло, по-прежнему, прекрасно ловило все помехи, но не уходило в ступор (инженерам не приходится ездить и пересбрасывать питание). После аппаратных доделок табло перестало ловить помехи.

Вот.
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 13 2008, 14:09
Сообщение #67


кекс
******

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



Цитата
После аппаратных доделок табло перестало ловить помехи.

Представим, что у нас в МК прошит бутлоадер. В нем есть потенциально фатальная для девайса команда стирания страницы флеш, тогда единственным направлением для защиты от "случайных прыжков" - будет правильное проектирование ПП и снижение уровня помех.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 13 2008, 14:34
Сообщение #68


Знающий
****

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



Цитата(Rst7 @ Feb 13 2008, 15:50) *
У меня стандарт на оборудование (EN54) требует не сбиваться, максимум - кратковременное нарушение индикации (ну типа, когда статразряд влетает в светодиод, он подмигивает wink.gif ). И работает.

Рискну предположить, что у вас всё работает из-за того, что всё это достаточно большое, и в железном корпусе. Я это условие как-то в том посте упустил.
У меня-то пластмассовый корпус 120*60*32 мм. И когда они этот гвоздик, в котором 8 кВ за единицы наносекунд нарастает, к корпусу подносят (к разным местам), то до процессора и других микросхем - от него менее 15 мм расстояние. Это почище той зажигалки, которой Дон Амброзио свои процессоры тестирует. Пробовали экраны металлические делать - эффект 0-й, а удорожание не 0-е. И всё равно это не поможет т.к. кабеля-то наружу торчат. От них тоже сбивается.

Но всё само восстанавливается (класс B )

Цитата(defunct @ Feb 13 2008, 17:09) *
Представим, что у нас в МК прошит бутлоадер. В нем есть потенциально фатальная для девайса команда стирания страницы флеш, тогда единственным направлением для защиты от "случайных прыжков" - будет правильное проектирование ПП и снижение уровня помех.

У меня тоже бутлоадер есть в области загрузчика. Перед тем как программировать я CRC переменных проверяю. Согласен, что защита не 100%. Может ведь и после проверки прыгнуть. Но 99.9%. А если быть точным - то отношение кол-ва команд с которых бутлоадер несанкционированно запустится к 65536 (столько слов у AVR с 128 в конце).
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 13 2008, 14:41
Сообщение #69


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
У меня-то пластмассовый корпус 120*60*32 мм.


И в подобных корпусах есть приборчики. Там система будь-здоров, всяких разных приблуд и в пластмассовых корпусах и в металлических - дофига. Все работает.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 13 2008, 15:12
Сообщение #70


кекс
******

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



Цитата(galjoen @ Feb 13 2008, 16:34) *
Может ведь и после проверки прыгнуть. Но 99.9%. А если быть точным - то отношение кол-ва команд с которых бутлоадер несанкционированно запустится к 65536 (столько слов у AVR с 128 в конце).

угу, прыжек же "случайный" можно папасть в любую точку, по законам Мерфи попадем ровно на erase sequence после всех проверок. Защититься тут никак нельзя, а вот предотвратить "командировку для устранения последствий" - можно. Например, можно хранить копию основной прошивки во внешней eeprom'ке, при старте бутлоадером проверить CRC прошивки, если не совпадает - то попытаться загрузить прошивку из внешней eeprom.

Я собсно хочу отметить, что задача автора ветки - нерешаемая. Ее можно только обойти, но не решить.
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Feb 13 2008, 15:51
Сообщение #71


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(defunct @ Feb 13 2008, 18:12) *
угу, прыжек же "случайный" можно папасть с любую точку, по законам Мерфи попадем ровно на erase sequence после всех проверок.

Ага.. Но у меня в конце каждой итерации записи страницы стоит тоже проверка "а была ли действительно санкционирована запись" и если нет - восстанавливаем странцу из копии программы (у меня в флэшаке всегда храниться 3 копии программы: одна активированная, а 2 в дезактивированном виде)

Так что.. Опять мимо

Цитата(defunct @ Feb 13 2008, 17:09) *
Представим, что у нас в МК прошит бутлоадер. В нем есть потенциально фатальная для девайса команда стирания страницы флеш

Надо проектировать программу так, чтобы стирание одной единственной страницы флэш не было фатальным . Как? Смотрите выше

А вообще я не спорю, что всегда существует вероятность такого сбоя когда никакие программные извраты не помогут предотвратить нехорошие последствия этого сбоя.. Против лома, как говориться , нет приёма..Только другой лом

Но как я уже писал и другие говорили, что какая бы высокая надёжность не обеспечивалась граммотным проектированием железа применяя программные методы можно увеличить это надёжность ещё больше


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 13 2008, 15:53
Сообщение #72


Знающий
****

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



Цитата(Rst7 @ Feb 13 2008, 17:41) *
И в подобных корпусах есть приборчики. Там система будь-здоров, всяких разных приблуд и в пластмассовых корпусах и в металлических - дофига. Все работает.

У меня есть знакомый. Очень уважаемый человек! Он всегда рассказывает, что огородом совсем не занимается, а там у него все очень хорошо растёт. При этом он явно даёт понять, что у него все растения так хорошо растут просто из уважения к нему.
Надеюсь, вы Rst7, не такой уважаемый человек. Объясните, как-же у вас в таких корпусах от наносекундных помех ничего не сбивается? Вы экраны ставите? Или как вы этого добиваетесь?

Только без обид. Rst7, заранее извиняюсь! Простите, что первое на ум пришло написал. А стирать жалко.
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Feb 13 2008, 16:08
Сообщение #73


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(defunct @ Feb 13 2008, 15:47) *
это еще что за зверь такой "счетчик ограничитель".

"На свете есть много такого, мой друг, Горацио, что и не снилось нашим мудрецам"(С)

Цитата(defunct @ Feb 13 2008, 18:12) *
Я собсно хочу отметить, что задача автора ветки - нерешаемая. Ее можно только обойти, но не решить.


Принимается

Я немного неправильно сформулировал задачу.

Я написал в исходном сообщении: А кто как защищает код в MCU от несанкционированного выполнения в результате случайного перехода из одной точки программы в другую от воздействия помехонесущего электромагнитного поля (искажения записанного в счётчике команд значения). А?


А правильно бы надо было так (ведь именно это меня и интересует):

А кто как организует код программы, чтобы программа детектировала (обнаруживала) случайные переходы из одной точки программы в другую, вызванные воздействием помехонесущего электромагнитного поля (искажения записанного в счётчике команд значения) т.е. переходы, не предусмотренные на этапе проектирования программы



Цитата(galjoen @ Feb 13 2008, 17:34) *
Согласен, что защита не 100%.

Вот я и говорю, что не 100% но всё же эффект ведь налицо от применения "программных методов"
Что эти Господа так упираются против использования программных методов обнаружения сбоев? Не понимаю

Цитата(mig2002 @ Feb 13 2008, 16:20) *
А что касается несанкционированных помех и т.д., то эти вопросы лучше решать другими способами (экранами, фильтрами, убрать подальше от источника помех.....).

Конечно лучше... И плюс для подстраховки рассыпать в проге код обнаружения случайных джампов...Так...На всякий пожарный


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 13 2008, 17:16
Сообщение #74


кекс
******

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



Цитата(Дон Амброзио @ Feb 13 2008, 17:51) *
(у меня в флэшаке всегда храниться 3 копии программы: одна активированная, а 2 в дезактивированном виде)

Так что.. Опять мимо

А почему Вы восприняли это на свой счет? sad.gif
Я же не знал, что и как у Вас реализовано, и соотв. не мог критиковать вашу реализацию.
А вот сейчас уже могу smile.gif - что делать если основная прошивка занимает >50% флеша?

На этом форуме вообще-то не принято друг-друга подкалывать.
Тему можно сделать интересной, и без скандальных постов.
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Feb 13 2008, 18:35
Сообщение #75


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(defunct @ Feb 13 2008, 20:16) *
Я же не знал, что и как у Вас реализовано, и соотв. не мог критиковать вашу реализацию.А вот сейчас уже могу smile.gif - что делать если основная прошивка занимает >50% флеша?

1)Использовать другой MCU с бОльшим количеством FLASH
2)Уменьшить программу
3) Придумать что-то ещё(например выделить во FLASH какой-нибудь буфер страницы на 4; пишем новую страницу туда; пишем ещё одну копию новой страницы в буфер; затем считываем в ОЗУ содержимое старой страницы, которую хочем изменить; пишем её в буфер; ещё раз считываем в ОЗУ содержимое старой страницы; пишем её в буфер; далее стираем требуемую страницу и пишем новое содержимое ТАКИМ ОБРАЗОМ СТИРАНИЕ ОДНОЙ СТРАНИЦЫ FLASH НЕ БУДЕТ ФАТАЛЬНЫМ


Цитата(defunct @ Feb 13 2008, 20:16) *
На этом форуме вообще-то не принято друг-друга подкалывать.

И не думал. Ведь я как никто заинтересован этой темой и в нормальных ответах в ней, а не в обсуждении моей персоны

Цитата(Дон Амброзио @ Feb 13 2008, 21:22) *
1)Использовать другой MCU с бОльшим количеством FLASH
2)Уменьшить программу
3) Придумать что-то ещё(например выделить во FLASH какой-нибудь буфер страницы на 4; пишем новую страницу туда; пишем ещё одну копию новой страницы в буфер; затем считываем в ОЗУ содержимое старой страницы, которую хочем изменить; пишем её в буфер; ещё раз считываем в ОЗУ содержимое старой страницы; пишем её в буфер; далее стираем требуемую страницу и пишем новое содержимое ТАКИМ ОБРАЗОМ СТИРАНИЕ ОДНОЙ СТРАНИЦЫ FLASH НЕ БУДЕТ ФАТАЛЬНЫМ
И не думал. Ведь я как никто заинтересован этой темой и в нормальных ответах в ней, а не в обсуждении моей персоны

К тому же между установкой бита SPMEN и командой SPM даётся 4 такта на "раздумье". Туда можно засунуть код:
OUT SPMCR , R16
; ---------------
SBRS R17 , 7
RJMP CRASH
;-----------------
SPM

Цитата(Дон Амброзио @ Feb 13 2008, 21:31) *
ТАКИМ ОБРАЗОМ СТИРАНИЕ ОДНОЙ СТРАНИЦЫ FLASH НЕ БУДЕТ ФАТАЛЬНЫМ

Разумеетцо если сбои не сыпяться слишком часто. К примеру не чаще чем раз в секунду. В противном случае (т.е. если частота сбоев в программе из-за помех больше чем раз в секунду) можно смело отправлять девайс на помойку


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post

19 страниц V  « < 3 4 5 6 7 > » 
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 14:30
Рейтинг@Mail.ru


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