Lpc2368fbd100 как прочитать прошивку
Перейти к содержимому

Lpc2368fbd100 как прочитать прошивку

  • автор:

Контроллеры Семейства Arm

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

Поделиться

Последние посетители 0 пользователей онлайн

  • Ни одного зарегистрированного пользователя не просматривает данную страницу

Объявления

Сообщения

Допустим вот так. А как вы её хотели подключить ?

Привет! Я смонтировал 8 сегментов (анод) через pnp-транзистор. Все работало хорошо. Также имею схему в протеусе. Там все тоже хорошо работает и сейчас. Но пока пишеться программа, немного плата паяется и последних 2 цифри начали параллельно светиться с каждой из шести по отдельности. Если сетиться первая, то светятся и 7 и 8, если вторая — тоже 7, 8 и т. д. а также светятся обе цифри и 8 и 7, когда светяся или 7, или 8. Перепроверил тестером транзистори, дорожки, должно все работать. Протеус то работает. Я понять все, когда запрограммировал отображение цифри через 2 секунди. Увидел вот такую паралельность, как описал вначале. Не понимаю почему так. Собрал такую же схему на макете — все работает с таким же МК и таким же семисегментним( он снимается с плати ). Намекните, пожалуйста, где искать, почему если я снимаю напряжение с бази первого, то снимается и с 7 и с 8-го транзисторов? Макет работает хорошо. Для наглядности прикрепил кусок схеми

Зачем ещё реле ? Разве автомата обычного вам недостаточно ? А всем остальным можно рулить с помощью частотника..

Так а в какую точку по-схеме лучше? и что с вольтодобавкой, можно?

Помогите выбрать реле. Хочу купить реле для 3х фазного двигателя подкаченного через частотник 220>220 3ph, по схеме треугольник. Ток при 220 ~ 6.8A https://www.aliexpress.com/item/1005005837105164.html тут такая формула, для мотора 1500вт на 220в получится надо брать реле 6,8*6 > 40А надо брать 60А чтоб с запасом Тут другой производитель и другая формула https://www.aliexpress.com/item/1005003708364936.html STEP 2: Calculate the current and select the correct model Equipment power / Voltage = Current Current / Coefficient (Ratio) = Current of SSR The coefficient depends on the load type of the loading equipment. Resistive load: 60% Inductive load: 30% Example: A motor with a rating of 1500W, the motor is an inductive load, the formula: 1500W/220V=6.8, 6.8/0.3=22A, you need to choose to buy a 25A solid state relay Кто из производителей ближе к истине? Благодарю заранее.

Вроде мультиметр показывает 220.

Добрый вечер. Жерар Нужен быстрый диод на 200-300в с небольшой емкостью, да бы не связываться с компенсацией. Типа такого STTH1602CT

LPC2368FBD100 (прошивка)

Author24 — интернет-сервис помощи студентам

Уважаемые спецы, необходимо считать и записать процессор LPC2368FBD100. Думаю использовать программу Magic Ftosh и программатор LPC ISP (mini). Подскажите, к каким ножкам процессора мне необходимо подсоединиться этим программатором? Или может есть какой другой (лучше), так же возможно самостоятельное повторение не сложно устройства для этого процессора.
Сильно не пинайте,я навичек в этом деле — просто подскажите.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

прошивка сма ariston ARXF109EU 46544630100, замена модуля, требуется прошивка
все старое сгорело, пять вольт встретились с фазой. поделитесь пожалуйста, буду благодарен

СМА BEKO WKB 61001Y, нужна прошивка и фьюзы — Прошивка, дамп
Сообщение от nocl-ip.mm 01.05.2017, 16:36 "buksa, Делал подобную WKB61001Y, но дамп заливал от.

СМА INDESIT IWSC 4085 EU прошивка, SN011156125*46620540000 — Прошивка,
Доброй ночи, нужна прошивка для СМА INDESIT IWSC 4085 EU, SN011156125*46620540000, SW 01.04.03.

Регистрация: 11.01.2013
Сообщений: 5,479
Через пины UART0 — TXD0 и RXD0 (соответствуют портам P0.2 и P0.3).
Регистрация: 11.01.2013
Сообщений: 5,479

Цитата

Сообщение от bommy

Посмотрите, правильно я описал подключение этого адаптера к контроллеру?

Номера пинов с табличкой в даташите не сверял, а по названиям сигналов могу сказать.
(VccIO) и (GND) — правильно;
(TxD) и (RxD) — скорее всего, правильно, но бывают USB-serial адаптеры, где эти две подписи перепутаны; проверяется выяснением (прозвонкой): к каким пинам чипа адаптера присоединены эти контакты «TxD» и «RxD»;
(RTS) и (DTR) — откуда информация по этим сигналам? Я бы их вообще не подключал, но, возможно, сам FtoshMagic что-то специальное делает с их помощью?

Update: да, вижу в картинках на FtoshMagic, что он может (опционально) выдавать дополнительные управляющие сигналы через DTR и RTS.

Читал в интернете на разных форумах, что при работе с этим процессором, кроме RESIT подключается и Р0.14 (именно такой маркировки вывода на процессоре не нашел, может он как-то по-другому еще маркируется).
В общем помогите разобраться в подключении.

Регистрация: 11.01.2013
Сообщений: 5,479

Цитата

Сообщение от bommy

Читал в интернете на разных форумах, что при работе с этим процессором, кроме RESIT подключается и Р0.14 (именно такой маркировки вывода на процессоре не нашел, может он как-то по-другому еще маркируется).
В общем помогите разобраться в подключении.

P0.14 (PSEN) нужен для вхождения в режим работы с прошивкой. Сигнал сброса — тоже. Если в документации на 2368-ой не упоминается P0.14, то, возможно, используется другой пин для вхождения в режим. Например, даташит упоминает P2.10 — не его ли надо соединять с RTS?

В принципе, эти два пина можно и вручную замыкать, а в качестве прошивочного устройства использовать любой копеечный адаптер RS232-serial или USB-serial. Но раз уж у Вас есть специальный адаптер с RTS и DTR, как раз для FtoshMagicа, то можно не упрощать и делать полное подключение.

Datasheet LPC2368FBD100 — NXP Даташит микроконтроллер 32 бит ARM7, 10/100, USB, CAN — Даташит

NXP LPC2368FBD100

LPC2368FBD100 Купить Цена

Купить LPC2368FBD100 на РадиоЛоцман.Цены — от 10 до 1 316

29 предложений от 20 поставщиков

Контроллеры.Тип: Микроконтроллер 16-бит/32-бит серии LPC2300Описание: ARM7® LPC2300 Microcontroller IC 16/32-Bit 72MHz 512KB (512K x 8) FLASH 100-LQFP (14×14)Интерфейс: CAN, Ethernet, I2C.

Подробное описание

Производитель: NXP

Описание: Микроконтроллер 32 бит ARM7, 10/100, USB, CAN

Краткое содержание документа:
LPC2364/65/66/67/68
Single-chip 16-bit/32-bit microcontrollers; up to 512 kB flash with ISP/IAP, Ethernet, USB 2.0, CAN, and 10-bit ADC/DAC
Rev.

06 — 1 February 2010 Product data sheet
1. General description
The LPC2364/65/66/67/68 microcontrollers are based on a 16-bit/32-bit ARM7TDMI-S CPU with real-time emulation that combines the microcontroller with up to 512 kB of embedded high-speed flash memory. A 128-bit wide memory interface and a unique accelerator architecture enable 32-bit code execution at the maximum clock rate. For critical performance in interrupt service routines and DSP algorithms, this increases performance up to 30 % over Thumb mode. For critical code size applications, the alternative 16-bit Thumb mode reduces code by more than 30 % with minimal performance penalty. The LPC2364/65/66/67/68 are ideal for multi-purpose serial communication applications. They incorporate a 10/100 Ethernet Media Access Controller (MAC), USB full speed device with 4 kB of endpoint RA

  • Разрядность ядра: 32 бит
  • Количество линий ввода/вывода: 70
  • Размер памяти программ: 512 Кб
  • Размер ОЗУ: 32 Кб
  • Тактовая частота процессора: 72 МГц
  • Тип генератора: внешний, внутренний
  • Количество таймеров: 4
  • Периферия: ADC, DAC, DMA, RTC
  • Интерфейс: CAN, I2C, SPI, UART
  • Количество каналов ШИМ: 6
  • Тип корпуса: LQFP
  • Диапазон напряжения питания: 3 В . 3.6 В
  • Рабочий диапазон температрур: -40°C . +85°C
  • Количество выводов: 100
  • SVHC: No SVHC (18-Jun-2010)
  • Тактовая частота: 72 МГц
  • Размер памяти Flash: 512 Кб
  • Количество логических функций: 2368
  • Количество входов АЦП: 6
  • Способ монтажа: SMD
  • Dataman — DATAMAN 848PRO

Вычитываем прошивку STM32

Почти в каждом микроконтроллере с интегрированной флэш памятью есть защита от вычитывания прошивки. Это делается чтобы защитить интеллектуальную собственность, криптографические ключи и алгоритмы от злоумышленников. Микроконтроллеры серии STM32, получившие широкое распространение в последнее время, особенно часто подвергаются атакам, однако нет практического опыта или информации касательно защищенности STM32 от подобных атак доступной публично. В этой статье рассмотрим системы защиты прошивки на примере STM32f0 серии.

Концепт защиты

Flash Readout Protection (RDP) ключевой компонент в защите, включенный во все линейки микроконтроллеров. Он защищает системную прошивку, сохраненную во внутренней флэш памяти от вычитывания. В зависимости от линейки, могут быть включены дополнительные механизмы, такие как Memory Protection Unit (MPU) и привилегированные / непривилегированные режимы исполнения. Вместе, эти системы призваны повысить защищенность.

RDP имеет 3 уровня защиты, RDP level 0, 1, 2. Защищенность увеличивается с ростом числа.

RDP level 0 : установлен по умолчанию и не предполагает защиты. Используя интерфейс отладки, можно получить полный доступ к устройству.

PRD level 1: Интерфейс отладки остается активным, но доступ к флэшу ограничен. Как только подключается интерфейс отладки, флэш память блокируется. Она не может быть считана ни напрямую, ни через DMA, ни путем исполнения инструкций из нее. Уровень защиты может быть как повышен до 2, так и понижен до 0, с потерей содержимого всей флэш памяти.

PRD level 2: максимально ограничивает и предоставляет максимальный уровень защиты. Интерфейс отладки отключен. Уровень не может быть понижен. Однако, несмотря на самый высокий уровень защиты, уровень 1 широко используется. Многие компании предпочитают не блокировать устройства полностью, предполагая возможности для устранения багов и неисправностей, т. к. на уровне 2 отладка невозможна. К тому же, в серии STM32f1 нет поддержки RDP level 2.

Устройство защиты RDP

RDP level это часть конфигурации систем микроконтроллера, хранящаяся в выделенной option bytes секции как 16 бит non-volatile памяти в виде двух регистров, RDP и nRDP. nRDP побитно комплементарен к RDP. Избыточность необходима для защиты от смены уровня путем подмены одного бита.

Регистры конфигурации RDP

Логика работы RDP

Согласно datasheet, на RDP level 1 существует два режим исполнения. Режим пользователя и режим отладки. Как только мк переходит в режим отладки, доступ к флэш блокируется. Чтение из флэша по заявлениям производителя должен вызвать ошибку шины, затем Hard Fault interrupt.

Атака Cold-Boot Stepping

В режиме RDP level 1 при подключении отладчика ограничивается доступ только к FLASH памяти, тогда как SRAM остается доступна. Мы можем попробовать вычитать данные в момент, когда она загружены в оперативную память. С такой уязвимостью борются разработчики криптографических библиотек. Ключи шифрования хранятся в SRAM только во время использования, что составляет несколько миллисекунд, что делают такую атаку практически не выполнимой, даже без того факта, что мы не знаем об организации памяти.

Для преодоления этого ограничения авторы статьи разработали Cold-Boot Stepping (CBS), метод с помощью которого можно делать точные снимки оперативной памяти. Идея метода в том, чтобы точно отсчитывать время от события, к примеру RESET, и циклично с шагом несколько тактов делать snapshot содержимого SRAM. Атака состоит из следующих шагов:

Схема установки для атаки CBS

1. Установление системы в изначальное состояние

1. Отключение питания. Необходимо чтобы мк смог снова читать из flash памяти.
2. Установка RESET до подачи питания. Позволяет запустить систему без начала исполнения кода
3. Подача питания под установленным RESET

2. Запуск системы на N кол-во шагов.

1. Запускает исполнение кода путем снятия RESET
2. Ожидание пока исполнение прошивки дойдет до установленного места
3. Установка Reset. Останавливает выполнение, но данные в SRAM остаются нетронутыми.

3. Вычитывание содержимого SRAM в файл

1. Подключение отладчика к мк
2. Снятие сигнала reset. МК не начинает исполнение кода, т. к. находится в состоянии halt установленного отладчиком.
3. Вычитывание SRAM

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

Экстракция прошивки через CBS

Развивая описанный метод, можно создать метод полной экстракции прошивки. Во многих продуктах производители используют загрузчик, алгоритм верификации прошивки которого базируется на подсчете чек суммы, например CRC32, реализованной в некоторых линейках мк. Применяя CBS (Cold-Boot stepping) на этапе работы загрузчика, можно полностью восстановить прошивку путем анализа регистров аппаратной чек суммы или программной ее реализации, ведь на определенном шаге в ней хранится байты интересующей нас части прошивки.

Установка для атаки CBS

На фотографии представлена автономная установка для извлечения прошивки. Ноутбук динамически подстраивает шаг, основываясь на успешности работы на предыдущем шаге. Для мк с малым объемом памяти, например STM32F051R8T6 на 64кб, экстракция займет несколько дней.

Получается, что несмотря на то, что RDP level 1 предоставляет защиту от чтения SRAM, она может быть взломана.

Использование RDP level 2 позволить обезопасить устройство от подобных атак, одна зачастую производители используют RDP level 1. Например, в популярном программном обеспечении для отладки, OpenOCD, предоставляет только команду “Lock” для защиты flash памяти устройство. При этом команда поддерживает только RDP level 1.

Понижения уровня защиты

Рассмотрим теперь методы понижения уровня RDP. Производитель заявляет, необратимость установки уровня RDP level 2. В идеале нам нужно понизить уровень 2 до 0, однако избыточность регистров RDP требует замены 8 битов. Чтобы понизить 2->1, требует изменить всего 1 бит.

Таблица соответсвия состояний RDP

Методом UV-C оптической экспозиции можно добиться изменения бит с состояния “0” на “1”. Когда излучение в 254нм попадет на затвор, происходит внедрение электронов и состояние логической ячейки переходит с 0 (заряженное) на 1 (незаряженное). Предварительно требуется очистить кристалл с помощью химического травления.

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

Защита от понижения уровня защиты

Не существует защиты от понижения уровня RDP, однако можно написать программу так, что на этапе инициализации она как можно раньше проверяет значение битов RDP и FLASH_OBR, в котором хранится текущий уровень защиты, и прекращает исполнения, делая метод экстракции CBS бесполезным.

Взлом интерфейса отладки

Микроконтроллеры производителя ST предполагают отладку по интерфейсу SWD [2]. Когда отладчик подключается к мк с RDP level 1 защита флэш памяти ограничивает доступ. Плохо задокументированный механизм отладки вызывает много вопросов и подстегивает к его изучению.

Авторы статьи создали свою реализацию интерфейса SWD для изучения работы защиты. Оказывается, что защита активируется только если отладчик взаимодействует с шиной AHB-Lite [1]. Получая доступ только к регистрам SWD, защита не активируется, но как только запрашивается доступ к периферии, SRAM или Flash мк переходит в режим отладки и flash память блокируется.

Для определения логики работы защиты авторы уменьшили количество SWD запросов до необходимого минимума для успешной инициализации. В процессе инициализации защита не срабатывает.

Согласно документации на Cortex-M0 [3] инструкции процессора имеют приоритет по отношению к интерфейсу отладки. Получается отладчику нужно дожидаться свободного цикла на шине чтобы исполнить свой запрос. Если отладчик получит доступ к шине раньше защиты flash памяти, то сможет считать данные из не заблокированной памяти.
Авторы статьи изучили работу защиты с прошивкой, эмулирующей нагрузку на шину, состоящий из интенсивного чтения и операций NOP. Если в прошивке нет таких операций, то чтения памяти отладчиком занимает 2 цикла: разрешения адреса и непосредственно чтение. Если добавить одну операцию NOP, то один из трех запросов на чтение не выполнится. Зависимость вероятности успешного чтения от кол-ва операций NOP может быть выражена в виде формулы

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

Одним из объяснений данной уязвимости может быть некорректная имплементация согласования источника тактирования и остальной логики.

Авторы представили действующую реализацию экстракции кода с помощью двух STM32F0 Discovery. Данные отправляются на ПК через интерфейс UART, а SWD реализован на одной из STM.

Атака состоит из следующих шагов:

  1. Перезагрузка системы с помощью отключения и подачи питания, чтобы сбросить защиту флэш памяти.
  2. Инициализация интерфейса отладки.
  3. Установка длины слова отладки в 32 бита
  4. Установка адреса чтения из флэша
  5. Попытка чтения из памяти
  6. Вычитывание считанных данных через SWD
  7. Повторить пока не прочтем всю память инкрементируя адрес

Средняя скорость вычитывания получается около 45 байт в секунду, что позволяет прочесть самый емкий «камень» в 256кб за 2 часа. Однако эксперименты проводились только на серии STM32F0 и предполагается, что из-за схожего внутреннего состояния, все мк линейки подвержены подобным атакам. Другие серии могут быть не затронуты.
Данную атаку можно избежать, используя второй уровень RDP, но как показано ранее уровень защиты может быть изменен. В то время как метод CBS требует работоспособность программного кода, уязвимость в отладчике может работать и в случае поврежденной при понижении уровня RDP прошивки.

Выводы

Серия мк STM32F0 содержит ряд уязвимостей позволяющих в лаборатории с базовым оборудованием создать установку для вычитывания прошивки. Методы могут комбинироваться для достижения наилучшего результата или позволить работать в RDP level 2.

Все необходимы материалы, исходный код и примеры представлены авторами статьи публично под лицензией MIT https://science.obermaier-johannes.de/.

[1] ARM LIMITED. AMBA 3 AHB-Lite Protocol Specification v1.0, 2006.

[2] ARM LIMITED. CoreSight Components Technical Reference Manual, 2009.

[3] ARM LIMITED. Cortex-M0 Technical Reference Manual, 2009.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *