Нужна помощь по MEGA328PU за вознаграждение!!!
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
Глупый вопрос - а в фузах вход в бут включен?
Белая и Пушистая
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
А АВРка может без внешнего программатора сама себе набор фуз-бит перезаписать?
(Вариант самоблокировки после загрузки через бутлоадер.)

(Вариант самоблокировки после загрузки через бутлоадер.)
- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
да, может.
загрузчик может читать все фьюзы и локи, а записывать может только локи.
всё это легко находится и читается в даташите.
загрузчик может читать все фьюзы и локи, а записывать может только локи.
всё это легко находится и читается в даташите.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
Читать можно откуда хош.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
[uquote="Starichok51",url="/forum/viewtopic.php?p=4560792#p4560792"]да, может.
загрузчик может читать все фьюзы и локи, а записывать может только локи.
всё это легко находится и читается в даташите.[/uquote]
Но вход в таблицу векторов, ее размещение и распределение ПЗУ это не локи - перезапись из бутлоадера вряд ли возможна.
Т. Е. Речь о самоблокировке доступа к бутлоадеру.
Разве что перезапись самой целевой программой области векторов(после ее запуска) - но тогда в самой целевой программе должна быть соответствующая секция -"вредитель", отключаемая после исполнения. И фузы для такого варианта трогать там совсем не потребуется.

загрузчик может читать все фьюзы и локи, а записывать может только локи.
всё это легко находится и читается в даташите.[/uquote]
Но вход в таблицу векторов, ее размещение и распределение ПЗУ это не локи - перезапись из бутлоадера вряд ли возможна.
Т. Е. Речь о самоблокировке доступа к бутлоадеру.
Разве что перезапись самой целевой программой области векторов(после ее запуска) - но тогда в самой целевой программе должна быть соответствующая секция -"вредитель", отключаемая после исполнения. И фузы для такого варианта трогать там совсем не потребуется.
- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
работу загрузчика, как таковую, запретить нельзя.
комбинации битов BLB12, BLB11 запрещают работу команды SPM в области загрузчика.
комбинации битов BLB02, BLB01 запрещают работу команды SPM в области приложения.
то есть, загрузчик запустится, но ничего записать не сможет.
комбинации битов BLB12, BLB11 запрещают работу команды SPM в области загрузчика.
комбинации битов BLB02, BLB01 запрещают работу команды SPM в области приложения.
то есть, загрузчик запустится, но ничего записать не сможет.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
Если область векторов останется доступной для spm (самого загрузчика или программы пользователя) то достаточно только перезаписать вектор сброса.
Это ежли автор не поставил "вторичную" таблицу векторов в произвольной области ПЗУ, которую можно в любом случае достать из spm. Некоторая потеря скорости выполнения при входе в обработчик прерывания конечно будет, но для того же ресета по включению питания... Не столь существенна ( команда перехода на следующий переход уже к исполняемому фрагменту). Да это и типовое решение у МК без аппаратной поддержки перепланировки таблицы векторов.

Это ежли автор не поставил "вторичную" таблицу векторов в произвольной области ПЗУ, которую можно в любом случае достать из spm. Некоторая потеря скорости выполнения при входе в обработчик прерывания конечно будет, но для того же ресета по включению питания... Не столь существенна ( команда перехода на следующий переход уже к исполняемому фрагменту). Да это и типовое решение у МК без аппаратной поддержки перепланировки таблицы векторов.
- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
к слову о таблице векторов прерываний.
сделал я себе загрузчик.
сначала попробовал перенос таблицы в загрузочную область.
но прерывания по приемнику и передатчику не заработали. пришлось переделать на программный анализ флагов готовности приема и готовности передачи.
сделал я себе загрузчик.
сначала попробовал перенос таблицы в загрузочную область.
но прерывания по приемнику и передатчику не заработали. пришлось переделать на программный анализ флагов готовности приема и готовности передачи.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
Я что то не пойму идею, которую тут некоторые втемяшивают. Загрузчик изменил код в программе, и чо?
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
OKF, Обсуждают возможность программной реализации защиты от клонирования изделия силами бутлоадера...
Белая и Пушистая
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4561189#p4561189"]OKF, Обсуждают возможность программной реализации защиты от клонирования изделия силами бутлоадера...[/uquote]
Да. Тема об этом. Только непонятно каким образом можно защититься с помощью бутлоадера. Предложите механизм. А не просто бессвязный набор, как у некоторых.
Да. Тема об этом. Только непонятно каким образом можно защититься с помощью бутлоадера. Предложите механизм. А не просто бессвязный набор, как у некоторых.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
Тут скорее не прямое клонирование, а защита от обновления программы после клонирования актуальна.
Т.е. клонировать текущую версию удается, а вот загрузить дальше вариант обновления софтины не получается.
Starichok51
Достаточно иметь доступ от SPM в рабочую область векторов.
Первичная запись бутлоадера одновременно и эту таблицу заполняет.
Только в ней не переходы на исполнительные программы, а передача управления расположенным также в области доступной SPM второй таблички с командами перехода. Эта область уже в "общедоступной области" (в любом на свое усмотрение месте).
Бутлоадер запустился по исходно прошитому переходу с ресета на промежуточный "ресет", загрузил нужную софтинку и... переписал вторичный вектор (в дубль-таблице). Кто тот вектор перепишет - фрагмент бута при своей работе или запускаемый из бута фрагмент основной софтины (или комбинация этих фрагментов) - это уже "изврат сочинителя".
Дальше выключаем устройство...
При повторном запуске ресет также адресует вторичную табличку, а в ней то уже другой вектор прописан - и обход бутлоадера гарантирован. Или проще ежли вектор ресета в общедоступной области переписан - но то "слишком заметно" может быть.
Ну и огромадное количество вариаций на ту же тему (в каком месте апендикс перезаписи расположен, где "маскирующая табличка" и как взаимодействие софтинок взаимосвязано).
У меня так работает биос бутлоадера/котиос котуинки при подгрузке целевых программ - там правда кросс-таблица в ОЗУ (совмещенная память программ/данных mcs51), но принцип практически одинаков (если свободная перезапись содержимого флеш выполняется).

Т.е. клонировать текущую версию удается, а вот загрузить дальше вариант обновления софтины не получается.
Starichok51
Достаточно иметь доступ от SPM в рабочую область векторов.
Первичная запись бутлоадера одновременно и эту таблицу заполняет.
Только в ней не переходы на исполнительные программы, а передача управления расположенным также в области доступной SPM второй таблички с командами перехода. Эта область уже в "общедоступной области" (в любом на свое усмотрение месте).
Бутлоадер запустился по исходно прошитому переходу с ресета на промежуточный "ресет", загрузил нужную софтинку и... переписал вторичный вектор (в дубль-таблице). Кто тот вектор перепишет - фрагмент бута при своей работе или запускаемый из бута фрагмент основной софтины (или комбинация этих фрагментов) - это уже "изврат сочинителя".
Дальше выключаем устройство...
При повторном запуске ресет также адресует вторичную табличку, а в ней то уже другой вектор прописан - и обход бутлоадера гарантирован. Или проще ежли вектор ресета в общедоступной области переписан - но то "слишком заметно" может быть.
Ну и огромадное количество вариаций на ту же тему (в каком месте апендикс перезаписи расположен, где "маскирующая табличка" и как взаимодействие софтинок взаимосвязано).
У меня так работает биос бутлоадера/котиос котуинки при подгрузке целевых программ - там правда кросс-таблица в ОЗУ (совмещенная память программ/данных mcs51), но принцип практически одинаков (если свободная перезапись содержимого флеш выполняется).
- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
причем тут команда SPM доступа к флеши? эта команда ничего не знает о положении таблицы векторов прерываний.BOB51 писал(а):Достаточно иметь доступ от SPM в рабочую область векторов.
Первичная запись бутлоадера одновременно и эту таблицу заполняет.
и только установлением фьюзов на старт в загрузочной области еще не переносит таблицу в загрузочную область.
при написании своего загрузчика я сначала прерывания от приемника и передатчика оставил на своем месте - по таблице с нулевого адреса. и прием и передача из загрузчика работали.
в АТмега8 есть регистр GICR, и в нем есть бит IVSEL, отвечающий за расположение таблицы векторов.при записи в этот бит "1" таблица векторов перемещается (должна переместиться) в загрузочную область.
я потом в своем загрузчике сделал такое перемещение. но у меня прерывания по приемнику и по передатчику почему-то не заработали.
а чтобы куда-то в произвольное место назначить таблицу векторов - в даташите я такого не видел вообще.
если тебя не затруднит, объясни мне подробно про перенос таблицы в разные места. и почему у меня не заработали прерывания после переноса таблицы?
можно и лучше в личке, чтобы не загружать эту тему.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Нужна помощь по MEGA328PU за вознаграждение!!!
Боб, извини, то ты своим пиздежом просто засоряешь темы. Бла-бла-бла шоу получается. Даже отвечать не хочется.(