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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> lpc2114/2124 Защита программы от считывания, "Сделайте одолжение, войдите в положение..."
GetSmart
сообщение Jul 12 2006, 20:21
Сообщение #16


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Даю выдержку из ботлоадера LPC2138:
Код
0x7FFFD000 E59FF018  LDR    PC, [PC, #+24]      ; [0x7FFFD020] =0x7FFFD1BC
.................
0x7FFFD1BC E59F0018  LDR    R0, [PC, #+24]      ; [0x7FFFD1DC] =SCCSPR (0xE01FC184)
0x7FFFD1C0 E51F1014  LDR    R1, [PC, #-20]       ; [0x7FFFD1B4] =0x1FC
0x7FFFD1C4 E5912000  LDR    R2, [R1, #+0]
0x7FFFD1C8 E5802000  STR    R2, [R0, #+0]
0x7FFFD1CC E51F2188  LDR    R2, [PC, #-392]     ; [0x7FFFD04C] =RAMEND (0x40007FFF)
0x7FFFD1D0 E242D01F  SUB    SP, R2, #0x1F
0x7FFFD1D4 E59FE004  LDR    LR, [PC, #+4]        ; [0x7FFFD1E0] =0x7FFFD3AB
0x7FFFD1D8 E12FFF1E  BX     LR

Лично я обнаружил недокументированный регистр SCCSPR с адресом 0xE01FC184. Однако, что он делает пока не выяснил.

Сообщение отредактировал GetSmart - Jul 12 2006, 20:28


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
goodwin
сообщение Jul 12 2006, 20:54
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 481
Регистрация: 1-08-05
Пользователь №: 7 267



Круто - недокументированный регистр "SCCSPR" smile.gif
Или бутлодырь в исходниках, и там так обзывается?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 12 2006, 21:14
Сообщение #18


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Оказывается он и в ПДФ-е (LPC213x User Manual(rev.01-24.06.2005).pdf) есть:
Цитата
Code Security/Debugging
CSPR Code Security Protection Register RO 0 0xE01FC184

А об этой штуке кто-нить знает:
Цитата
Reset
RSID Reset Source Identification Register R/W 0 0xE01FC180

Непонятны описания полей и всё остальное. У себя найти не могу.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 12 2006, 21:53
Сообщение #19


Гуру
******

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



Цитата(GetSmart @ Jul 12 2006, 23:21) *
Даю выдержку из ботлоадера LPC2138:

Бутлоадеры у 213x и прочих разные. У прочих даже такой регистр не используется.

Цитата
А об этой штуке кто-нить знает:

Reset
RSID Reset Source Identification Register R/W 0 0xE01FC180
Непонятны описания полей и всё остальное. У себя найти не могу.


Ну полагаю RSIR

Код
RSIR Function Description Reset
Value
0 POR
Assertion of the POR signal sets this bit, and clears all of the other bits in this register. But
if another Reset signal (e.g., External Reset) remains asserted after the POR signal is
negated, then its bit is set. This bit is not affected by any of the other sources of Reset.
see text
1 EXTR Assertion of the RESET signal sets this bit. Ths bit is cleared by POR, but is not affected by
WDT or BOD reset.
2 WDTR This bit is set when the Watchdog Timer times out and the WDTRESET bit in the Watchdog
Mode Register () is 1. It is cleared by any of the other sources of Reset.
3 BODR
This bit is set when the 3.3V power falls below 2.6V. If the voltage continues to decline o the
level at which POR is asserted (nominally 1V), this bit is cleared, but if the voltage comes
back up without reaching that level, this bit remains 1. This bit is not affected by External
Reset nor Watchdog Reset.
7:4 Reserved Reserved, user software should not write ones to reserved bits. 0


Ну и что здесь непонятного?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 12 2006, 22:20
Сообщение #20


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Вот спасибо. А то я поиском не нашёл. Очепятки есть даже у буржуев.

А как убедительно звучало:
Цитата(zltigo)
Подтверждаю - нету...

Пока я выдержку не привёл. Есть он или его нету пока не ясно. В других ботлоадерах он может и в другом месте прописываться. У меня вот других процов нет и я сам проверить не могу. А то, что регистр бессмысленный это ну очень маловероятно.
Применительно к процессорам с внешней памятью (не к 213х) должны быть ещё некоторые типы защиты. Например, выполнение из внешней флэш, или из внешней рамы, и может что ещё.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 13 2006, 06:01
Сообщение #21


Гуру
******

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



Цитата(GetSmart @ Jul 13 2006, 01:20) *
А как убедительно звучало:

0. А что? Регистр не документирован :-)?
1.Посмотрите на типы процессоров, о которых спрашивал автор.
2.Бутлоадеры для них (в отличие от 2x3x серии, или уже и их выложили? ) лежат на официальном
сайте. Таким образом можете их поизучать и не имея чипа....
Я еще думал, а какого черта для 2x3x серии другие боотлоадеры замутили, теперь, видимо, получил ответ - завели регистр с временными воротами для блокировок JTAG и начали им пользоваться.
3.Для большинства "прочих" чипов прошивка "защищенного" боотлоадера вообще появилась много
много позже выпуска "железа".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 13 2006, 08:30
Сообщение #22


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



А я еще нашел в бутлоадере 211x 212x недокументированную команду T
позволяет загружать память параллельно формат такой
T <addr> <len> <width> <strobe>
первые 2 параметра такие же как и у команды W (должны быть выравнены)
width должна быть 8 или 16
strobe если 0 строба нет, не 0 есть

загружает через PORT0 пины с 8 по 15 для ширины 8 или с 8 по 23 для ширины 16
пин 24 - строб захватывает по rising edge (если strobe!=0)

если strobe=0 то просто читает из порта и записывает в память, но считывает порт каждый раз только без синхронизации (можно константой память забить)
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 14 2006, 11:24
Сообщение #23


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Еще при исследовании бутлоадера я нашел уязвимость!! excl.gif
Проверил на 2 чипах LPC2129 версия 1.63 и LPC2119 версия 1.64.
На LPC2103 версия 2.2 не работает (возможно, другое распределение памяти), я не разбирался.
В общем сегодня, послыкой определнной строки мне удалось отключить защиту и считать flash

Послал письмо инеженру Филипс, который был на семинаре у нас в прошлом году.
Может быть у них есть новые версии бутлоадера. Хотя можно и этот исправить
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jul 14 2006, 11:35
Сообщение #24


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



для более -менее секьюрных вещей lpc лучше не применять. Есть инфа что флешка читается в не зависимости от содержимого бутлодера и справедливо это для всех ихних чипов.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 14 2006, 11:54
Сообщение #25


Гуру
******

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



Цитата
В общем сегодня, послыкой определнной строки мне удалось отключить защиту и считать flash

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 14 2006, 11:59
Сообщение #26


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Harbour @ Jul 14 2006, 15:35) *
для более -менее секьюрных вещей lpc лучше не применять. Есть инфа что флешка читается в не зависимости от содержимого бутлодера и справедливо это для всех ихних чипов.

А откуда такая инфа?

Мне пришол ответ от Philips что изучат проблему и к сентябрю выпутстят новый бутлоадер
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 14 2006, 13:06
Сообщение #27


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(KRS)
В общем сегодня, послыкой определнной строки мне удалось отключить защиту и считать flash

Круто!
Я так и знал, что что-то там не в порядке. Халтурщики же они. Делают очень дешёвые и средне глючные чипы. Но именно дешевизна и прильщает при такой огромной производительности.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 14 2006, 14:01
Сообщение #28


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(GetSmart @ Jul 14 2006, 17:06) *
Цитата(KRS)
В общем сегодня, послыкой определнной строки мне удалось отключить защиту и считать flash

Круто!
Я так и знал, что что-то там не в порядке. Халтурщики же они. Делают очень дешёвые и средне глючные чипы. Но именно дешевизна и прильщает при такой огромной производительности.


Да чипы у них действительно быстрые и дешевые, да и появляются часто раньше конкурентов.
У меня сейчас в 2 проектах LPC2103 он вообще 3 бакса стоит
Кстати вот на следующей неделе попробую покапаться в его бутлоадере.
А то у меня возникли сомнения что защита у них лучше, просто в даташите громко названо Code Read Protection, а реализация мне кажется такая же.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 14 2006, 14:07
Сообщение #29


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



zltigo правильно сказал - надо писать свои ботлоадеры для надёжной защиты. Хотя, надёжна ли она будет на 100%?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 14 2006, 14:13
Сообщение #30


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(GetSmart @ Jul 14 2006, 18:07) *
zltigo правильно сказал - надо писать свои ботлоадеры для надёжной защиты. Хотя, надёжна ли она будет на 100%?

У LPC работа с FLASH не документирована, только через IAP, а IAP вместе бутлоадером и записывается, причем насколько я знаю через IAP нельзя переписать сектор в котором она же и находится.
Бутлоадер можно конечно переписать и даже улучшить, написан он кстати кривовато, и явно на С.
Но вот записать его во FLASH стандартными средствами не удастся.

Кстати сам бутлоадер вызыват IAP причем тем способом который описан в даташите, напрмую функции не дергает.
Go to the top of the page
 
+Quote Post

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

 


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


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