|
|
  |
Что там ST учудил с защитой кода..... |
|
|
|
Jun 11 2015, 16:24
|

Частый гость
 
Группа: Свой
Сообщений: 117
Регистрация: 6-07-05
Из: Белгород
Пользователь №: 6 575

|
Цитата(Dr.Alex @ Jun 10 2015, 09:55)  Ребята, вы немного не зазнавайтесь там :-))) Помнится, я тут спрашивал, например, кто какой скорости работы по USB HS добился, в ответ молчок. То есть никто вообще USB HS не использует (а у меня бутлодырь именно через него), и что вариант необратимо убить жтаг допускается, но НЕ ПРИВЕТСТВУЕТСЯ. Вот и всё. Цитата Или у STM32F207 (я лично получал для Mass-Storage порядка 7-8 МБайт/Сек.). kovigorЦитата у меня получалось более 10мб/с в комплекте с тормозной сд-картой. на ulpi3300 и f215. MBRСкорость High Speed USB на STM32F2/F4ну и далее поиском по форуме на USB3300. Наверное, мало кто вопрос увидел. По теме: со 2 уровня уж никак нельзя проц снять, совсем-совсем?
|
|
|
|
|
Jun 12 2015, 09:04
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133

|
Я использую ROP=1 для защиты бутлоадера, обновление через USB (USB-flash). При включенном ROP=1 нельзя посмотреть содержимое RAM, FLASH или регистров, нельзя запустить код в RAM, можно только изменить уровень защиты на нулевой (ROP=0), но это приведет к автоматическому стиранию flash. Поэтому не вижу способа взлома через JTAG/SWD. ROP=1 вполне достаточно для защиты бутлоадера, а защита самой программки - это уж дело бутлоадера (шифрование, цифровая подпись). Если я не прав, то расскажите хоть приблизительно технологию, как можно "утянуть" бутлоадер или расшифровать прошивку.
|
|
|
|
|
Jun 12 2015, 11:49
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133

|
Цитата(Dr.Alex @ Jun 12 2015, 12:53)  Я знаю не ROP а RDP, и при RDP=1 как раз есть доступ к РАМ (кроме бэкап) и регистрам. ROP/RDP - это одно и то же (read out protection). В режиме 1 можно запустить программу из RAM, но доступ к flash из этой программы невозможен. Для полного спокойствия нужно сразу после запуска перевести линии SWD/JTAG в режим IO и доступ будет полностью отрезан.
|
|
|
|
|
Jun 12 2015, 12:11
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133

|
Цитата(ViKo @ Jun 12 2015, 14:54)  Должна стереться вся флэш-память. В том числе и сектор 0? И ошибка от стирания защищенного сектора уже не сработает? Какой выигрыш я получу, защищая сектор 0 от записи?  Если защитить сектор от записи, но не установить read out protection = 1, этот сектор можно прочитать через SWD/JTAG. Если установить read out protection = 1, то, независимо от защиты на запись, прочитать ничего нельзя. Если установлен read out protection = 1, и установить установить read out protection = 0 (отключить звщиту), то все содержимое flash будет стерто, не взирая на защиту от записи.
|
|
|
|
|
Jun 12 2015, 12:15
|
Профессионал
    
Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863

|
Цитата(bugdesigner @ Jun 12 2015, 14:49)  В режиме 1 можно запустить программу из RAM, но доступ к flash из этой программы невозможен. Достаточно того, что есть доступ к РАМ и регистрам. Цитата(bugdesigner @ Jun 12 2015, 14:49)  Для полного спокойствия нужно сразу после запуска перевести линии SWD/JTAG в режим IO и доступ будет полностью отрезан. Никакого полного спокойствия не предвидится. От ресета до того, как вы отключите жтаг, пройдёт много тактов процессора, достаточно для того чтобы автоматическая программа (а не юзер, шлёпающий по кнопкам IARa) успела подключиться и помешать вам отключить жтаг.
|
|
|
|
|
Jun 12 2015, 14:34
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133

|
Цитата(ViKo @ Jun 12 2015, 15:27)  Сбрасываем уровень защиты чтения на 0. Сотрутся все секторы, даже если они защищены от записи. Те защита от записи в этой ситуации игнорируется. Цитата(Dr.Alex @ Jun 12 2015, 15:15)  От ресета до того, как вы отключите жтаг, пройдёт много тактов процессора, достаточно для того чтобы автоматическая программа (а не юзер, шлёпающий по кнопкам IARa) успела подключиться и помешать вам отключить жтаг. Ну и что в результате? Доступа к содержимому флеш нет. Какую полезную информацию можно получить от содержимого памяти и регистров на момент инициализации GPIO?
|
|
|
|
|
Jun 12 2015, 19:27
|
Профессионал
    
Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863

|
Цитата(bugdesigner @ Jun 12 2015, 17:34)  Ну и что в результате? Доступа к содержимому флеш нет. Какую полезную информацию можно получить от содержимого памяти и регистров на момент инициализации GPIO? Вы кажется пропустили всю тему. Во-первых есть возможность не дать записать в регистры то что не нужно, то есть не дать отключить жтаг. А за тем вынуть из РАМ либо ключ аеса либо декодированную прошивку.
|
|
|
|
|
Jun 13 2015, 04:48
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133

|
Цитата(Dr.Alex @ Jun 12 2015, 22:27)  Во-первых есть возможность не дать записать в регистры то что не нужно, то есть не дать отключить жтаг. А за тем вынуть из РАМ либо ключ аеса либо декодированную прошивку. Допустим, что мы успели приаттачиться к DP до момента, пока он не был отключен. Теперь нам нужно пропустить момент отключения DP и запустить ядро процессора. Что у нас получится - HardFault, потому, что доступ к flash при подключенном DP заблокирован. Можете провести экспериментик - напишите маленькую программку, чтоб гоняла какой-нибудь цикл, поставьте RDP=1 и попробуйте подключиться к SWD/JTAG дебаггером. А потом попробуйте запустить свой код из flash.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|