Перейти к содержанию
    

Вопросы САМОСТОЯТЕЛЬНОГО написания не раз обсуждались в форуме. Плодить одинаковые темы нехочеться. Я вего лишь спросил о сравненией готовых (отлаженных и оптимизированых). Очень нехочеться спорить о том, что лучше, написанный самим за неделю или человеком, который этой темой занимаеться не один год.

Кстати о демогогии: во всё горло кричать "лучший это который написал САМ!!!" и дольше:

Мне загрузчик студент написал ...

А на меня никто не работает! (шутка)

И еще ответы в стиле: "посмотри в гугле". Хороший ответ, универсальный. Подходит ко всем вопросам, только зачем тогда форум.....

А еще посмотреть можно в яндаксе, рамблере и т.д. (шутка)

 

Одно радует есть и результат:

http://avrubd.googlepages.com/avrub.htm

http://progloader.nm.ru/

 

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

А сравню сам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2Igor26

Спасибо,стараюсь когда есть настроение. :yeah:

 

GSK

Вот еще ссылочка для вашей коллекции

http://www.microsyl.com/

раздел "megaload"

 

ЗЫ На мой взгляд Вы в самом начале неправильно поставили вопрос , с разнообразием бутов не густо ,что бы было из чего выбирать ,да и выглядело в целом на тип - "подайте-принесите" ,

вот и имеете разборки на хвосте :smile3009:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Молодец! Хорошая работа! :beer:

Думаю насчёт защиты от копирования работа не очень хорошая. Это оттуда:

Шифрование - производится шифрование прошивки по алгоритму Z=255-(X xor Y) исключающее ИЛИ с инверсией, расшифровка производится в программе загрузчика по обратному алгоритму X=(255-Z) xor Y

X- байт прошивки

Y- байт таблицы

Z- зашифрованый байт

Прошивка шифруется блоками по 256 байт,тоесть первым байтом с первым байтом таблицы,второй со вторым и т.д. ,начиная с 257-го байта прошивки опять берется первый байт из таблицы ,258-ой со вторым и т.д. Если компилятор генерирует свободную область памяти и заполняет ее значениями $FF или $00 ,и она не используется программой ,ее рекомендуется заполнить случайными значениями для более надежного шифрования. Если компилятор не генерирует свободную область памяти ,при компиляции следует в конце исходника добавить случайных данных чтобы размер прошивки был кратен 256.При соблюдении этих рекомендации прошивка будет зашифрована достаточно надежно.

Если во FLASH содержатся к.л. сообщения, или вообще что-либо выдаваемое наружу (в 95% применений это так), то такая защита ломается элементарно. Конечно это справедливо только в том случае, если основная программа не написана специальным "неломаемым" образом, но об этом тут ни слова.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думаю насчёт защиты от копирования работа не очень хорошая. Это оттуда:

Ну почему же, если следовать рекомендации и не давать повода получить 256-ти байтный ключ в явном виде, то сломать защиту будет весьма непросто.

 

Надеюсь прошив зашифрованную программу, бутлоадер не выдаст ее потом назад в расшифрованном виде. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пусть мое сообщение опять не в тему, но не хочу плодить "лишнюю сущностей"... В общем тоже сейчас ковыряюсь с бутлоадером и пишу его на avr gcc... Все замечательно прошивается, но возникает глупый вопрос, что дальше, как выйти из бут области? Сделать простой джамп на адрес 0x0000? Но кто очистит стек? Какие в общем есть рекоммендации на этот счет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Основная программа, стартующая с адреса 0, это, как правило, совершенно самостоятельный проект. Его же c_startup и осуществит все необходимые настройки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Основная программа, стартующая с адреса 0, это, как правило, совершенно самостоятельный проект. Его же c_startup и осуществит все необходимые настройки.

Тоже самое будет и с джампом на бутлоадер из основной программы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Основная программа, стартующая с адреса 0, это, как правило, совершенно самостоятельный проект. Его же c_startup и осуществит все необходимые настройки.

Спасибо за разъяснение :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые.

Большая просьба, здесь обсуждать только достоинства и недостатки.

А проблемы типа "как сделать, чтобы .....", "....как выйти из бут области", "программа, стартующая с адреса 0000" и т.д. Тоесть технические вопросы касаемые написания бутов, обсуждать в других, специально созданых для этого темах!!!!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну почему же, если следовать рекомендации и не давать повода получить 256-ти байтный ключ в явном виде, то сломать защиту будет весьма непросто.

 

Надеюсь прошив зашифрованную программу, бутлоадер не выдаст ее потом назад в расшифрованном виде. :)

Любая защита действует только до тех пор, пока взломщику не удаётся внедрить свой исполняемый код.

Часть ключа фактически уже известна т.к. в таблице прерываний естественно поставить команды rjmp (до 8 кБайт FLASH) или jmp ( >8 кБайт FLASH), а их коды известны. Но можно сломать и без использования этой уязвимости. На месте взломщика действуем так:

Предположим объём программы 8 кбайт, а объём сообщений, которые она выдаёт из FLASH и которые мы можем прочесть, 100 байт (символов). Тогда, изменяя по 1 байту через 100, мы за 80 раз добьёмся того, что сообщение изменится (кол-во допустимых перепрограммирований 10000). По теории вероятности это произойдёт на 40й раз. Когда это произойдёт мы фактически узнаем 100 байт ключа. Дезасемблировав по 100 байт из других страниц, наверняка найдём исполняемый код, который заменяем на наш.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот загрузчик с протоколом STK500, можно прям из AVR Studio шить

avr_stk500_IAR.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотря для чего нужен бутлодырь. Для обновления программ в готовых изделиях у заказчиков- пользуюсь модифицированным AES бутлодырем от атмеля. Изменил прогу для того чтобы бутлодырь запрашивал программирование и 1 секунду ждал ответа от программы апдейта. Дальше идет проверка крк и запуск программы или постоянный перезапуск бутлодыря. Из основной программы сделал команду сброса устройства. Таким образом можно без проблем программировать по радиоканалу. Все делается с помощью двух .bat файлов. Для других изделий применяю выведенный ISP разъем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а накой такой бутлоадер нужен, если его первый раз нужно программатором зашивать? Что мешает и вдальнейшем пользоваться программатором??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотря для чего нужен бутлодырь. Для обновления программ в готовых изделиях у заказчиков- пользуюсь модифицированным AES бутлодырем от атмеля. Изменил прогу для того чтобы бутлодырь запрашивал программирование и 1 секунду ждал ответа от программы апдейта. Дальше идет проверка крк и запуск программы или постоянный перезапуск бутлодыря. Из основной программы сделал команду сброса устройства. Таким образом можно без проблем программировать по радиоканалу. Все делается с помощью двух .bat файлов. Для других изделий применяю выведенный ISP разъем.

 

Совсем недавно выявил проблему в AES бутлодыре- при определенных объемах прошивки бутлодырь не правильно расшифровывает в мк последний блок. Из-за чего CRC вылетает с ошибкой. Ошибка вылазит очень редко- но становится не очень приятно- просто приходится менять размер прошивки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...