Обсуждаем контроллеры компании Atmel.
Ответить

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Ср мар 27, 2024 21:49:33

Глупый вопрос - а в фузах вход в бут включен?

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Чт мар 28, 2024 06:39:25

А АВРка может без внешнего программатора сама себе набор фуз-бит перезаписать?
(Вариант самоблокировки после загрузки через бутлоадер.)
8)

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Чт мар 28, 2024 07:32:19

да, может.
загрузчик может читать все фьюзы и локи, а записывать может только локи.
всё это легко находится и читается в даташите.

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Чт мар 28, 2024 07:59:56

Читать можно откуда хош.

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Чт мар 28, 2024 09:58:37

да, может.
загрузчик может читать все фьюзы и локи, а записывать может только локи.
всё это легко находится и читается в даташите.

Но вход в таблицу векторов, ее размещение и распределение ПЗУ это не локи - перезапись из бутлоадера вряд ли возможна.
Т. Е. Речь о самоблокировке доступа к бутлоадеру.
Разве что перезапись самой целевой программой области векторов(после ее запуска) - но тогда в самой целевой программе должна быть соответствующая секция -"вредитель", отключаемая после исполнения. И фузы для такого варианта трогать там совсем не потребуется.
8)

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Чт мар 28, 2024 22:30:55

работу загрузчика, как таковую, запретить нельзя.
комбинации битов BLB12, BLB11 запрещают работу команды SPM в области загрузчика.
комбинации битов BLB02, BLB01 запрещают работу команды SPM в области приложения.
то есть, загрузчик запустится, но ничего записать не сможет.

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Пт мар 29, 2024 06:51:45

Если область векторов останется доступной для spm (самого загрузчика или программы пользователя) то достаточно только перезаписать вектор сброса.
Это ежли автор не поставил "вторичную" таблицу векторов в произвольной области ПЗУ, которую можно в любом случае достать из spm. Некоторая потеря скорости выполнения при входе в обработчик прерывания конечно будет, но для того же ресета по включению питания... Не столь существенна ( команда перехода на следующий переход уже к исполняемому фрагменту). Да это и типовое решение у МК без аппаратной поддержки перепланировки таблицы векторов.
8)

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Пт мар 29, 2024 08:30:50

к слову о таблице векторов прерываний.
сделал я себе загрузчик.
сначала попробовал перенос таблицы в загрузочную область.
но прерывания по приемнику и передатчику не заработали. пришлось переделать на программный анализ флагов готовности приема и готовности передачи.

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Пт мар 29, 2024 09:54:31

Я что то не пойму идею, которую тут некоторые втемяшивают. Загрузчик изменил код в программе, и чо?

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Пт мар 29, 2024 10:45:22

OKF, Обсуждают возможность программной реализации защиты от клонирования изделия силами бутлоадера...

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Пт мар 29, 2024 11:08:35

OKF, Обсуждают возможность программной реализации защиты от клонирования изделия силами бутлоадера...

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

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Пт мар 29, 2024 17:37:45

Тут скорее не прямое клонирование, а защита от обновления программы после клонирования актуальна.
Т.е. клонировать текущую версию удается, а вот загрузить дальше вариант обновления софтины не получается.
Starichok51
Достаточно иметь доступ от SPM в рабочую область векторов.
Первичная запись бутлоадера одновременно и эту таблицу заполняет.
Только в ней не переходы на исполнительные программы, а передача управления расположенным также в области доступной SPM второй таблички с командами перехода. Эта область уже в "общедоступной области" (в любом на свое усмотрение месте).
Бутлоадер запустился по исходно прошитому переходу с ресета на промежуточный "ресет", загрузил нужную софтинку и... переписал вторичный вектор (в дубль-таблице). Кто тот вектор перепишет - фрагмент бута при своей работе или запускаемый из бута фрагмент основной софтины (или комбинация этих фрагментов) - это уже "изврат сочинителя".
Дальше выключаем устройство...
При повторном запуске ресет также адресует вторичную табличку, а в ней то уже другой вектор прописан - и обход бутлоадера гарантирован. Или проще ежли вектор ресета в общедоступной области переписан - но то "слишком заметно" может быть.
Ну и огромадное количество вариаций на ту же тему (в каком месте апендикс перезаписи расположен, где "маскирующая табличка" и как взаимодействие софтинок взаимосвязано).
У меня так работает биос бутлоадера/котиос котуинки при подгрузке целевых программ - там правда кросс-таблица в ОЗУ (совмещенная память программ/данных mcs51), но принцип практически одинаков (если свободная перезапись содержимого флеш выполняется).
8)

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Пт мар 29, 2024 19:16:05

BOB51 писал(а):Достаточно иметь доступ от SPM в рабочую область векторов.
Первичная запись бутлоадера одновременно и эту таблицу заполняет.
причем тут команда SPM доступа к флеши? эта команда ничего не знает о положении таблицы векторов прерываний.
и только установлением фьюзов на старт в загрузочной области еще не переносит таблицу в загрузочную область.
при написании своего загрузчика я сначала прерывания от приемника и передатчика оставил на своем месте - по таблице с нулевого адреса. и прием и передача из загрузчика работали.
в АТмега8 есть регистр GICR, и в нем есть бит IVSEL, отвечающий за расположение таблицы векторов.при записи в этот бит "1" таблица векторов перемещается (должна переместиться) в загрузочную область.
я потом в своем загрузчике сделал такое перемещение. но у меня прерывания по приемнику и по передатчику почему-то не заработали.
а чтобы куда-то в произвольное место назначить таблицу векторов - в даташите я такого не видел вообще.
если тебя не затруднит, объясни мне подробно про перенос таблицы в разные места. и почему у меня не заработали прерывания после переноса таблицы?
можно и лучше в личке, чтобы не загружать эту тему.

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Пт мар 29, 2024 21:50:59

Ответ перенес в соответствующую тему:
viewtopic.php?p=4561440#p4561440
:beer:

Re: Нужна помощь по MEGA328PU за вознаграждение!!!

Сб мар 30, 2024 16:56:27

Боб, извини, то ты своим пиздежом просто засоряешь темы. Бла-бла-бла шоу получается. Даже отвечать не хочется.(
Ответить