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

 
 
> Как программить flash в LPC без IAP ?
VLM
сообщение Oct 6 2008, 15:20
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 1-10-08
Пользователь №: 40 613



Информация низкоуровнего доступа к внутренней flash микроконтроллеров от NXP явлается секретом. А также является секретом как первоначально прошивается bootloader на предприятии изготавливающем эти чипы.
Поэтому я был бы весьма признателен, если конить поможет пролить свет на эти "секреты". Ведь производитель некоторых программ загрузчиов имеют представление как в LPC программить flash без IAP. Помогите кто может!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Oct 6 2008, 15:45
Сообщение #2


Гуру
******

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



Цитата(VLM @ Oct 6 2008, 17:20) *
Поэтому я был бы весьма признателен, если конить поможет пролить свет на эти "секреты".

Зачем?
Цитата
Ведь производитель некоторых программ загрузчиов имеют представление как в LPC программить flash без IAP.

Поограммы загрузчики загружают код работающий через IAP, что позволяет им работать по документированнму интерфейсу. Чего и Вам желаю.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
VLM
сообщение Oct 6 2008, 17:02
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 1-10-08
Пользователь №: 40 613



Цитата(zltigo @ Oct 6 2008, 18:45) *
Зачем?

Поограммы загрузчики загружают код работающий через IAP, что позволяет им работать по документированнму интерфейсу. Чего и Вам желаю.



Зачем - чтобы сделать хорошую защиту кода. Второе - если есть возможность с помощью загрузкика обновить версию bootload , то наверняка перед записью нового старый полностью затирается. Это предпологает, что загрузчик копирует или грузи в RAM те функции через которые потом программирует новую версию. Чтобы сделать хорошую защиту кода - надо сделать свой загрузчик(ни кому не известный) заместо штатного, или не дать возможность после резета отрабатывать штатному. Для этого мне и нужно либо знать как работать с flash на низком уровне или иметь проттотипы функций IAP, что вобщемто одно и тоже.

Цитата(VslavX @ Oct 6 2008, 18:47) *
А почему хотите избавиться от IAP? Чем не устраивает?
Немного про устройство загрузчиков есть здесь
P.S. Я бы тоже не отказался узнать как ведет себя контроллер с полностью чистым флешем - срабатывает ли CRP и не блокируется ли доступ по JTAG.



По всей видимотси контроллер с чистым флешем ни как себя не ведёт, и наверное в этом случае имеется возможность только параллельного программирования, когда ядро контроллера не работает. Но это мои догадки. И если это так, то полностью защитить свой код во флеше нет.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 6 2008, 17:20
Сообщение #4


Гуру
******

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



Цитата(VLM @ Oct 6 2008, 19:02) *
Зачем - чтобы сделать хорошую защиту кода.

smile.gif Разработчики от NXP хотели сделать плохую, или хорошую, но у них не хватило информации и квалификации smile.gif
Цитата
...или не дать возможность после резета отрабатывать штатному. Для этого мне и нужно либо знать как работать с flash на низком уровне или иметь проттотипы функций IAP, что вобщемто одно и тоже.

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
VslavX
сообщение Oct 6 2008, 19:56
Сообщение #5


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(zltigo @ Oct 6 2008, 20:20) *
smile.gif Разработчики от NXP хотели сделать плохую, или хорошую, но у них не хватило информации и квалификации smile.gif

ИМХО, ирония здесь несколько неуместна. Разработчики кристаллов почти никогда (за исключением специальных случаев, когда разрабатывается защищенная система) не заморачиваются защитой кода клиентов, CRP - это просто "бесплатный бонус. Есть - и ладно, но никто ничего не гарантирует, даже "на словах".
Навскидку - два примера:
- еще 5 лет назад я изучал загрузчик MSP430F149, прошитый в ROM. Там была найдена дыра, сегодня известная как баг "BSL03", о чем Texas был поставлен в известность. F149-й до сих пор выпускается с этой "дырой" и успешно не применяется в моих изделиях.
- "дыра" в загрузчиках для тех же LPC21xx - в версиях до 1.64 включительно также хорошо известна (даже обсуждалась у нас на форуме) и отлично свидетельствует об избытке "квалификации и информации" у разработчиков NXP. И не факт, что там (и в других загрузчиках от NXP) больше не осталось таких проблемных мест.
Далее - загрузчик от NXP, с известным протоколом и с отсутствующей криптографией, легко обойти применяя несложные методы социальной инженерии и некоторое знание психологии. Не кражей, не подкупом, не шантажом и не другими некрасивыми методами, а просто основываяясь на невнимательности сервисников/ремонтников.
Поэтому разработка своего загрузчика достаточно актуальна, притом что, например, в моей компании cуществует более чем 10-летняя традиция использования своего протокола и методики криптозащиты, которые к тому же составляют заметную часть функциональности изделий. И замалчивание деталей программирования флеша со стороны NXP вызывает недоумение и некоторое раздражение, тем что вынуждает заниматься реверс-инжинирингом (со временем я стал находить дизассемблирование все более и более скучным занятием smile.gif).
Вот такие у меня 5 коп smile.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 6 2008, 20:40
Сообщение #6


Гуру
******

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



Цитата(VslavX @ Oct 6 2008, 21:56) *
ИМХО, ирония здесь несколько неуместна.

Уместна sad.gif дело ведь не в том, что загрузчики содержали, содержат и в принципе могут содержать баги, а в том, что некто считает себя безгрешным и способным написать идеальный загрузчик или сохранить его дыры в тайне от жаждущих. Кроме того, кроме иронии я дал простой совершенно реальный рецепт для особо пугливых.
Цитата
Поэтому разработка своего загрузчика достаточно актуальна...

Совершенно правильно, тоже использую свой ВТОРИЧНЫЙ криптозагрузчик для раздачи upgrade направо и налево. Только при этом не страдаю маниями по поводу наличия основного загрузчика и использования его составной части IAP.
Цитата
И замалчивание деталей программирования флеша со стороны NXP вызывает недоумение и некоторое раздражение,

А у меня нет - невозможно объять необъятное.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
VslavX
сообщение Oct 6 2008, 22:14
Сообщение #7


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(zltigo @ Oct 6 2008, 23:40) *
Уместна sad.gif дело ведь не в том, что загрузчики содержали, содержат и в принципе могут содержать баги, а в том, что некто считает себя безгрешным и способным написать идеальный загрузчик или сохранить его
дыры в тайне от жаждущих. Кроме того, кроме иронии я дал простой совершенно реальный рецепт для особо пугливых.

В своем загрузчике баги исправить можно, в чужом - нет.
Цитата(zltigo @ Oct 6 2008, 23:40) *
Совершенно правильно, тоже использую свой ВТОРИЧНЫЙ криптозагрузчик для раздачи upgrade направо и налево. Только при этом не страдаю маниями по поводу наличия основного загрузчика и использования его составной части IAP.

Угу. Приходит из поля прибор. Не рабочий. Вроде все OK, но не пашет. Что делает "авторизованный" сервисник/ремонтник? Запускает утилиту типа FlashMagic или Вашего isp200. Прибор "отзывается", но вот выясняется что, например, прошивка слетела - пусто в чипе, или мусор какой. Ну что ж, пытаемся прошить ВТОРИЧНЫЙ загрузчик - это ж лень проц перепаивать, а вдруг заработает. Прошили - все OK. Залили через вторичный загрузчик криптованную прошивку - все OK. Пашет! Отдаем прибор обратно в "поле", уф-ф, ставим галочку - "успешный ремонт" и берем с полки пирожок smile.gif .
А контроллер-то был не простой, там "злобные конкуренты" слегка пропатчили первичный загрузчик от NXP. И, к примеру, CRP "иногда" не работает. И вся прошивочка, вторичный загрузчик, а также ключики из этого загрузчика - "того", попали к кому не надо. Хорошо еще, если изделие не особо тиражное, прошивка несертифицируемая и можно наделать уникальных ключей. Но это далеко не всегда так - у меня почти всегда ключ общий для большой серии, а иногда даже для страны производства. А заставить сервисника/ремонтника всегда проводить проверку аутентичности контроллера - это утопия.
Цитата(zltigo @ Oct 6 2008, 23:40) *
А у меня нет - невозможно объять необъятное.

Да ладно уж - необъятное smile.gif. Месяц занудной работы максимум. В моем случае окупится - уже проверено smile.gif.
К тому же сам IAP переделывать смысла и правда никакого нет. А вот изменить протокол и добавить в него сразу криптование - самое оно.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 7 2008, 07:20
Сообщение #8


Гуру
******

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



Цитата(VslavX @ Oct 7 2008, 00:14) *
Угу. Приходит из поля прибор. Не рабочий. Вроде все OK, но не пашет. Что делает "авторизованный" сервисник/ремонтник? Запускает утилиту типа FlashMagic или Вашего isp200.

Поскольку вторичного загрузчика у сервисника нет, то он может и не запускать ничего из вышупомянутого. Вторичный загрузчик прошит на заводе, на него поставлена такая-же защита, как и на основной. Все. Для особо пугливых, повторяю 3 раз - заблокируйте основной загрузчик переходом на вторичный, можете добавить контроль его целостности во вторичный (и не надо никаких особо ответственных ремонтников)и не надо:
Цитата
Месяц занудной работы....


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Ander
сообщение Oct 7 2008, 07:42
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 24
Регистрация: 9-07-04
Из: Киев
Пользователь №: 308



Загрузчик LPC2000 уже давно вскрыли дизассембированием. Юзайте google. Мы написали свой собственный загрузчик и с успехом его используем.
Go to the top of the page
 
+Quote Post
etoja
сообщение Oct 7 2008, 08:56
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



1) Значит 'Ander' знает как перепрограммировать первичный загрузчик, но не говорит.
2) Ссылки на Гугл характерны для болтунов - сам не в курсе.
3) Свои платы нужно маркировать разрушаемой гарантийной наклейкой. А чужие платы пусть отвечают по гарантии сами. Много ли здесь таких, которые копируют чужие платы и отвечают перед покупателем?
Go to the top of the page
 
+Quote Post
Ander
сообщение Oct 7 2008, 17:31
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 24
Регистрация: 9-07-04
Из: Киев
Пользователь №: 308



Цитата(etoja @ Oct 7 2008, 11:56) *
1) Значит 'Ander' знает как перепрограммировать первичный загрузчик, но не говорит.
2) Ссылки на Гугл характерны для болтунов - сам не в курсе.
3) Свои платы нужно маркировать разрушаемой гарантийной наклейкой. А чужие платы пусть отвечают по гарантии сами. Много ли здесь таких, которые копируют чужие платы и отвечают перед покупателем?

1-е утверждение правильное. Я знаю как шить чипы LPC213x/01. Мы в нашей конторе написали свой загрузчик.
2-е утверждение неверно. Я нашел инфу в инете через Гугл. Просто надо уметь искать и принимать во внимание, что инет - не статическая во времени вещь. С 2006 года многое могло поменяться.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- VLM   Как программить flash в LPC без IAP ?   Oct 6 2008, 15:20
||- - zltigo   Цитата(Ander @ Oct 7 2008, 09:42) Загрузч...   Oct 7 2008, 08:31
||- - zltigo   Цитата(etoja @ Oct 7 2008, 10:56) Значит ...   Oct 7 2008, 10:36
|- - VslavX   Цитата(zltigo @ Oct 7 2008, 10:20) Поскол...   Oct 7 2008, 10:38
||- - zltigo   Цитата(VslavX @ Oct 7 2008, 12:38) Хм, а ...   Oct 7 2008, 10:50
||- - VLM   Цитата(zltigo @ Oct 7 2008, 13:50) На это...   Oct 7 2008, 11:12
|- - VLM   Цитата(zltigo @ Oct 7 2008, 10:20) ....Дл...   Oct 7 2008, 10:41
|- - VslavX   Цитата(VLM @ Oct 7 2008, 13:41) Значит пр...   Oct 7 2008, 11:09
|- - zltigo   Цитата(VslavX @ Oct 7 2008, 13:09) ..прив...   Oct 7 2008, 14:48
|- - VLM   Цитата(zltigo @ Oct 7 2008, 17:48) ...Вст...   Oct 7 2008, 15:06
|- - meister   Цитата(zltigo @ Oct 7 2008, 18:48) контро...   Oct 8 2008, 04:56
|- - zltigo   Цитата(meister @ Oct 8 2008, 06:56) ...ко...   Oct 8 2008, 07:10
- - VslavX   Цитата(VLM @ Oct 6 2008, 18:20) Информаци...   Oct 6 2008, 15:47
- - VLM   Ander, я потратил несколько дней, но за два года и...   Oct 9 2008, 10:44
- - net   меня тоже волнует вопрос прошивки flash самопалом ...   Oct 9 2008, 15:54
|- - zltigo   Цитата(net @ Oct 9 2008, 17:54) мне напри...   Oct 9 2008, 16:07
|- - net   Цитата(zltigo @ Oct 9 2008, 20:07) Обсуж...   Oct 9 2008, 19:28
- - VslavX   Вчера "приговорил" LPC2368. Отладил сво...   Oct 12 2008, 11:32
|- - zltigo   Цитата(VslavX @ Oct 12 2008, 13:32) Вчера...   Oct 12 2008, 11:59
|- - VslavX   Цитата(zltigo @ Oct 12 2008, 14:59) Прост...   Oct 12 2008, 12:33
|- - zltigo   Цитата(VslavX @ Oct 12 2008, 14:33) Разни...   Oct 12 2008, 13:00
- - bus16   Интересно, а как на этапе производства этот-самый ...   Oct 13 2008, 08:36
|- - Abo   Цитата(bus16 @ Oct 13 2008, 12:36) Интере...   Oct 13 2008, 09:33
|- - bus16   Цитата(Abo @ Oct 13 2008, 13:33) А наверн...   Oct 13 2008, 09:50
|- - VslavX   Цитата(bus16 @ Oct 13 2008, 12:50) Сомнев...   Oct 13 2008, 10:11
|- - bus16   Цитата(VslavX @ Oct 13 2008, 14:11) А кто...   Oct 13 2008, 10:29
|- - VslavX   Цитата(bus16 @ Oct 13 2008, 13:29) После ...   Oct 13 2008, 16:35
|- - bus16   Цитата(VslavX @ Oct 13 2008, 20:35) Что з...   Oct 14 2008, 05:46
|- - defunct   Цитата(VslavX @ Oct 13 2008, 12:11) Основ...   Nov 3 2008, 13:01
- - TanT   Уважаемые эксперты, позвольте вмешаться с вопросик...   Oct 14 2008, 05:36
- - VslavX   Цитата(TanT @ Oct 14 2008, 08:36) Уважаем...   Oct 14 2008, 06:00
- - zltigo   Цитата(TanT @ Oct 14 2008, 07:36) Возможн...   Oct 14 2008, 07:21
- - TanT   Цитата(zltigo @ Oct 14 2008, 10:21) Да, ...   Nov 3 2008, 12:15
- - zltigo   Цитата(TanT @ Nov 3 2008, 15:15) Ассемлер...   Nov 3 2008, 13:04
- - TanT   Уважаемый, zltigo, переход на нулевой адрес работа...   Nov 7 2008, 09:10
- - amw   Цитата(TanT @ Nov 7 2008, 11:10) Уважаемы...   Nov 7 2008, 09:59
- - zltigo   Цитата(TanT @ Nov 7 2008, 12:10) PLL откл...   Nov 7 2008, 11:39
|- - TanT   Цитата(zltigo @ Nov 7 2008, 14:39) На вну...   Nov 10 2008, 06:55
|- - TanT   Пардон, заработало. Всем большое спасибо.   Nov 10 2008, 08:08
- - shahr   А ведь интересная была тема. Пока, по данным NXP, ...   Jul 22 2009, 15:01
- - toweroff   Цитата(shahr @ Jul 22 2009, 19:01) А ведь...   Jul 23 2009, 00:03
- - Step_ARM   Эта тема поднималась неоднократно. И я ее как-то п...   Jul 23 2009, 04:47
- - HARMHARM   Цитата(toweroff @ Jul 23 2009, 03:03) ой ...   Jul 23 2009, 04:51
- - toweroff   Цитата(HARMHARM @ Jul 23 2009, 08:51) Что...   Jul 23 2009, 06:40


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 12:15
Рейтинг@Mail.ru


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