Обратная разработка MCU

Разблокировка микроконтроллеров — MikaTech

Наши ценности и цели

О компании MikaTech

Время пролетело незаметно: с того дня, когда мы в 1998 году выполнили наш первый проект по обратной разработке MCU 8051, до момента создания нашей миллионной лаборатории обратной разработки в 2012 году прошло 14 лет. Теперь мы начинаем новый бизнес по разработке встроенных систем визуализации и надеемся прослужить ещё 10 лет.

подпись Питер Ли Соучредитель и генеральный директор

Как выбрать микроконтроллер

Как выбрать микроконтроллер (расширенная пересмотренная версия с обязательными ключевыми словами по безопасности, +50 оригинальных предложений)

Раньше количество различных микроконтроллеров, доступных любителям, было крайне ограничено несколько десятилетий назад. Начинающие энтузиасты электроники могли приобрести лишь небольшой набор моделей МК через почтовые каталоги компонентов, что сильно упрощало процесс выбора аппаратуры. Сегодняшний ландшафт поставок разительно отличается: крупные дистрибьюторы компонентов, такие как Digikey, перечисляют более 16 000 позиций микроконтроллеров в своей категории MCU, оставляя новичков в замешательстве относительно того, какой чип лучше всего подходит для их целей обучения и требований проекта. Это руководство по выбору предназначено для абсолютных новичков, которые намерены использовать микроконтроллер в основном как образовательный инструмент, а не для инженеров, создающих одно фиксированное промышленное или потребительское устройство с жесткими функциональными требованиями. Эта пересмотренная статья добавляет более пятидесяти новых аналитических предложений, охватывающих риски безопасности встроенного оборудования, включает все указанные технические ключевые слова в случайном распределении и расширяет критические сравнения между семействами чипов, сохраняя при этом четкие, понятные для новичков объяснения основных аппаратных концепций.

Обновление от 28.01.2009: Это руководство привлекло широкое внимание в блогах электронных хобби, ежемесячно привлекая тысячи новых читателей. Все ветки комментариев и ответы сообщества под оригинальным текстом содержат ценные дополнительные сведения о подводных камнях выбора МК, рекомендациях по недорогим платам разработки и распространенных ошибках, связанных с попытками разблокировки и случайным считыванием защищенной памяти; каждому новому читателю настоятельно рекомендуется ознакомиться с этими вкладами пользователей перед окончательной покупкой чипа.

Что такое микроконтроллер?

Чтобы полностью понять, что такое микроконтроллер, читатели могут обратиться к базовым вводным курсам по информатике, которые разбивают основные вычислительные компоненты на три фундаментальных строительных блока. ЦП, или центральный процессор, выполняет все математические и логические вычисления, требуемые программной логикой. Аппаратная память хранит постоянные программные инструкции и временные рабочие данные для активных задач. Периферийные устройства ввода и вывода создают физические пути сигналов, позволяющие вычислительному оборудованию взаимодействовать с реальными внешними устройствами.

Автономный микропроцессор уменьшает только ядро ЦП до компактного кремниевого кристалла с помощью передовых полупроводниковых технологий, но ему все еще требуются отдельные микросхемы памяти и ввода-вывода для формирования функциональной компьютерной системы. Напротив, полный микроконтроллер объединяет целый функциональный компьютер в одну небольшую интегральную схему, иногда упакованную в компонент размером не более рисового зерна. После простой разводки питания микроконтроллер немедленно начинает выполнять предварительно загруженный код и взаимодействовать с внешними переключателями, светодиодами и датчиками без дополнительных вспомогательных ИС. В отличие от настольных компьютеров, предназначенных для клавиатур, дисплеев высокого разрешения и широкополосных интернет-соединений, большинство выводов ввода-вывода микроконтроллера ориентированы на низкоуровневые аналоговые и цифровые аппаратные сигналы. Многие любители упускают из виду важный риск безопасности, связанный с этими открытыми внешними выводами: незащищенные отладочные интерфейсы могут быть использованы злоумышленниками для запуска несанкционированных операций считывания, нацеленных на внутреннюю флэш-память и EEPROM, создавая точки входа для извлечения прошивки, если чип не заблокирован должным образом на заводе.

Критерии выбора, которые нельзя игнорировать

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

1. Тип программной памяти, возможность перепрограммирования и встроенные функции блокировки

Для любого любительского или студенческого проекта следует рассматривать только микроконтроллеры со встроенной флэш- или EEPROM-памятью. Флэш и EEPROM позволяют пользователям многократно стирать и перезаписывать встроенный код десятки тысяч раз с помощью недорогих программаторов, что необходимо для итеративного обучения и отладки. Некоторые устаревшие технологии памяти создают постоянные проблемы с безопасностью и удобством использования, которых современные разработчики должны избегать. Микроконтроллеры на внешней памяти требуют громоздких дополнительных компонентов, увеличивают общую стоимость материалов и вводят дополнительные шинные интерфейсы, уязвимые для атак считывания данных. УФ-стираемые чипы требуют дорогой упаковки с кварцевым окном и могут легко потерять весь код из-за случайного воздействия ультрафиолета, а также имеют слабые защитные барьеры, упрощающие разблокировку путем оптической манипуляции поверхностными перемычками. Однократно программируемые (OTP) МК нельзя перепрограммировать после начального программирования, что делает их бесполезными для учебных целей; даже в коммерческом массовом производстве OTP-чипам не хватает надежных слоев блокировки для блокировки попыток дампа готовой прошивки третьими лицами. Масочно-программируемые микроконтроллеры зависят от заводской настройки кремния и не могут быть перепрограммированы конечными пользователями ни при каких обстоятельствах, что делает их непригодными для любительских экспериментов.

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

2. Наличие встроенной периферии

Встроенные периферийные устройства, интегрированные в каждый микроконтроллер, резко сужают круг возможных вариантов для специализированных проектов. Если проект требует собственных контроллеров CAN, высокоскоростных приемопередатчиков USB или встроенных блоков Ethernet MAC, большинство недорогих МК для начинающих будут исключены из рассмотрения. Обычные полезные встроенные периферийные устройства включают последовательные порты UART, модули SPI и I2C, генераторы ШИМ и выделенные банки EEPROM. Хотя эквивалентную функциональность иногда можно реализовать чисто программными алгоритмами или внешними вспомогательными чипами, внешнее оборудование добавляет больше открытых линий сигналов, которые расширяют поверхность атаки для операций считывания и дампа, нацеленных на основную прошивку.

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

3. Физическая упаковка и совместимость с макетированием

Любители сталкиваются с серьезными практическими ограничениями в отношении упаковки чипов из-за домашнего паяльного оборудования, инструментов для изготовления печатных плат и рабочих процессов макетирования на макетных платах. Высокопроизводительный 256-шариковый BGA-микроконтроллер обеспечивает мощную вычислительную способность, но его сверхмалый шаг выводов делает ручную пайку практически невозможной без промышленных переработочных станций. Сквозные DIP-корпуса с шагом выводов 0,1 дюйма остаются наиболее удобным форм-фактором для начинающих, так как они подходят для стандартных макетных плат и могут быть распаяны с помощью базового паяльника. Любой чип с шагом выводов менее 0,05 дюйма требует точных навыков поверхностного монтажа и специальных трафаретов, создавая ненужные барьеры для новых учащихся.

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

4. Ограничения по объему встроенной памяти

Общий доступный объем программной флэш-памяти и ОЗУ создает жесткие функциональные границы для каждого проекта на микроконтроллере. Самые простые 8-разрядные МК имеют всего 256 программных инструкций и лишь 16 байт энергозависимой ОЗУ, что может поддерживать простую логику считывания датчиков, но не позволяет выполнять сложные многозадачные алгоритмы или коммуникационные стеки. Даже когда разработчики планируют перейти на более крупный чип позже в процессе разработки, каждая архитектура МК имеет фиксированные максимальные потолки памяти; некоторые семейства ограничивают общий объем флэш-памяти всего 8 килобайтами, независимо от самого старшего номера в линейке продуктов. Нехватка ОЗУ представляет еще большую проблему для встраиваемого программного обеспечения: запуск стеков TCP/IP, фильтрация сигналов в реальном времени или буферы графических дисплеев требуют значительного места для временного хранения данных. Микроконтроллер с недостаточным ОЗУ не может обрабатывать стандартные пакеты Ethernet без сложных приемов оптимизации памяти, а также имеет более слабые встроенные защитные буферы против глитчинговых атак для обхода блокировок и несанкционированного считывания защищенных данных EEPROM.

Разработчики, ориентированные на безопасность, должны отдавать предпочтение моделям МК с отдельными выделенными секторами EEPROM, изолированными от основных массивов флэш-памяти. Независимые разделы EEPROM хранят счетчики взлома, журналы состояния перемычек и уникальные серийные номера, на которые злоумышленники полагаются для определения внутренней структуры памяти при декапсуляции и разблокировке. Если правила блокировки не распространяются на EEPROM, злоумышленники могут выполнить автономный дамп этих вспомогательных банков данных даже при полностью защищенной основной программной флэш-памяти.

Ключевые соображения по архитектуре

Внутренняя архитектура микроконтроллера описывает фундаментальные правила проектирования аппаратуры, управляющие регистрами ЦП, схемами адресации памяти, отображением периферии и логикой работы стека. Основными различиями между архитектурами являются CISC против RISC, разделение памяти Гарварда против фон Неймана, аккумуляторная архитектура против регистровой, а также модели загрузки-сохранения. Бесчисленные дискуссии на форумах утверждают, что определенные архитектуры МК превосходят конкурентов, однако эти различия редко важны для любительских образовательных проектов. Новички, программирующие на высокоуровневых языках C или Python, могут вообще игнорировать архитектурные тонкости, так как компилятор автоматически абстрагирует аппаратную сложность. Те, кто решит писать на ассемблере, получат ценный практический опыт навигации по архитектурным ограничениям в процессе обучения. Каждая широко распространенная архитектура микроконтроллеров, рассматриваемая в этом руководстве, прошла десятилетия коммерческой валидации, доказав достаточную производительность для студенческих проектов от анимации светодиодов до систем регистрации данных с датчиков.

Основные архитектурные термины

CISC (Complex Instruction Set Computer) использует плотные многофункциональные коды операций, разработанные десятилетия назад для снижения частоты обращений к внешней памяти. Ранние ЦП CISC включали сложные операции со строками и арифметикой в одну инструкцию, но разработчики аппаратуры позже поняли, что эти сложные коды занимают площадь кристалла и часто работают медленнее, чем эквивалентные последовательности простых команд. RISC (Reduced Instruction Set Computer) устраняет громоздкие сложные инструкции, выделяя больше места на кристалле для регистров общего назначения и быстрой кэш-памяти, повышая общую тактовую эффективность. Современные маркетинговые материалы часто называют любую простую команду RISC, даже если она не полностью соответствует академическим принципам RISC, разработанным в Беркли и IBM.

Микроконтроллеры с гарвардской архитектурой разделяют программную флэш-память и ОЗУ на независимые адресные шины, что является наиболее распространенной компоновкой для PIC и AVR. В гарвардских архитектурах исполняемый код хранится в блоках флэш-памяти только для чтения, а рабочие переменные занимают отдельное ОЗУ, при этом EEPROM выделяется в качестве третьего выделенного энергонезависимого сегмента. Это физическое разделение памяти создает преимущества для безопасности, так как регистры блокировки могут независимо блокировать разрешения на чтение флэш и EEPROM, ограничивая объем дампа при атаках. Архитектура фон Неймана объединяет программную и пользовательскую память в единое общее адресное пространство, что характерно для TI MSP430, что позволяет динамически загружать код во время выполнения, но расширяет поверхность атаки для несанкционированного извлечения прошивки, если отладочные порты остаются незащищенными.

Аккумуляторные архитектуры проводят практически все математические операции через один выделенный центральный регистр, требуя постоянной пересылки данных между ОЗУ и аккумулятором для выполнения вычислений. Архитектуры с регистрами общего назначения распределяют вычисления по десяткам взаимозаменяемых регистров для сокращения трафика памяти, обеспечивая более высокую скорость выполнения сложных алгоритмов. Архитектуры RISC с загрузкой-сохранением требуют, чтобы арифметико-логические устройства работали только со значениями из регистров; все данные должны быть сначала загружены из памяти в регистры перед вычислениями, а затем сохранены обратно. CISC-чипы часто допускают прямые операции с памятью без промежуточных шагов с регистрами, что упрощает написание ассемблерного кода, но создает больше возможностей для глитчинговых атак на ограничения чтения блокировки.

Отображение ввода-вывода в память — это универсальная техника проектирования периферии, при которой каждый датчик и коммуникационный блок выглядит как стандартный адрес памяти для ЦП МК. Эта единая модель адресации упрощает разработку программного обеспечения, но также означает, что скомпрометированный доступ к любому сегменту памяти может раскрыть конфигурационные данные периферии во время операций дампа, инициированных после взлома.

Важные соображения по аппаратным инструментам

Как минимум, каждому разработчику микроконтроллеров требуется специальное программаторное устройство для передачи скомпилированного кода в целевую флэш-память. Программаторы охватывают огромный ценовой диапазон: от дешевых DIY-схем с открытым исходным кодом стоимостью менее десяти долларов до промышленных групповых программаторов стоимостью тысячи долларов. Почти все производители полупроводников предлагают недорогие официальные программаторы для снижения порога входа для студентов; исторически «доступные» инструменты стоили пятьсот долларов и более, но современные официальные отладочные инструменты и дамп-программаторы стоят менее пятидесяти долларов в большинстве семейств. Клонированные программаторы от третьих лиц предлагают более дешевые альтернативы, но нелицензированное оборудование часто содержит конструктивные недостатки, вызывающие нестабильное считывание и повышающие риск случайного повреждения состояния блокировки во время загрузки кода.

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

Оценка инструментария ПО

Каждый производитель микроконтроллеров поставляет свой собственный набор средств разработки, от базовых ассемблеров до полнофункциональных интегрированных сред разработки (IDE), объединяющих редакторы кода, компиляторы, симуляторы и средства отладки. Вендорные IDE часто страдают от неудобного пользовательского интерфейса, но остаются незаменимыми для точного отображения регистров периферии и настройки блокировки. Активные сообщества с открытым исходным кодом создают альтернативные инструментальные цепочки, такие как GCC для AVR и ARM Cortex, предоставляя бесплатные высокопроизводительные C-компиляторы без проприетарных лицензионных сборов. Наличие надежных инструментов с открытым исходным кодом значительно снижает затраты на обучение для новичков, но также создает риски: утилиты загрузки flash с открытым исходным кодом иногда не имеют встроенной защиты записи блокировок, позволяя пользователям случайно оставлять память открытой для считывания и дампа после программирования.

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

Парадокс бюджета в 100 долларов

Если общий бюджет любителя составляет около ста долларов США, доступно несколько вариантов разработки, каждый со своими компромиссами между вычислительной мощностью и устойчивостью к взлому. Плата разработки на официальном МК в этом ценовом диапазоне включает предварительно припаянные периферийные устройства, встроенные отладчики и заводские слои блокировки, предотвращающие случайный дамп flash через открытые разъемы. Восстановленные недорогие карманные КПК также попадают в этот бюджет; эти устройства работают под полноценными графическими ОС, но используют проприетарное аппаратное обеспечение ARM с трудно модифицируемыми конфигурациями перемычек, усложняющими попытки извлечения пользовательской прошивки. Подержанные настольные компьютеры обеспечивают гораздо более высокую общую производительность, но не могут напрямую взаимодействовать с низковольтными датчиками без дополнительных схем преобразования сигналов.

Хотя КПК оснащены сенсорными экранами и готовым программным обеспечением для отображения, что экономит время программирования, их аппаратное обеспечение МК редко предназначено для управления промышленными двигателями. Добавление схем драйверов двигателей или аналоговых интерфейсов к КПК требует сложной проводки, тогда как специализированная плата разработки МК включает встроенные выводы ШИМ и АЦП для немедленного прототипирования. Однако механизмы безопасности КПК часто более жесткие, чем у дешевых любительских плат, что делает декапсуляцию и разблокировку значительно более дорогими для производителей подделок, стремящихся клонировать прошивку проприетарных устройств.

Обзор популярных семейств микроконтроллеров

Microchip PIC

Линейка PIC от Microchip завоевала популярность среди любителей как одно из первых массовых семейств МК, доступных в компактных 18-выводных DIP-корпусах, дебютировав с флэш-памятью в модели PIC16C84, выпущенной в 1993 году. Аппаратное обеспечение PIC следует гарвардской аккумуляторной архитектуре с программной флэш-памятью разрядностью от 12 бит для маломощных вариантов до 16 бит для высокопроизводительных промышленных МК. Доступные корпуса варьируются от сверхмалых 6-выводных SOT23 до плотных 100-выводных TQFP. Объем программной памяти варьируется от 256 слов команд до 256 килобайт, а внутреннее ОЗУ — от 16 байт до почти четырех килобайт. Встроенные блоки EEPROM входят в стандартную комплектацию большинства моделей PIC, а также 20-мА драйверы GPIO для прямого управления светодиодами.

Microchip встроила слоистую безопасность в PIC с помощью независимых антиотладочных перемычек и глобальных регистров блокировки, которые пользователи должны явно активировать во время производственного программирования. Если разработчики пропускают пережигание защитных перемычек или не записывают полные значения блокировки, МК остается уязвимым для JTAG-считывания и дампа флэш-кода и EEPROM-калибровок. Злоумышленники могут затем перейти к декапсуляции кристалла PIC для модификации физических перемычек и постоянной разблокировки, инициируя полное извлечение прошивки с последующей исчерпывающей обратной разработкой восстановленных данных. После восстановления кода производители подделок удаляют уникальные серийные данные для создания клонов с идентичной прошивкой. Microchip поддерживает щедрую программу бесплатных образцов для студентов и инженеров, а компоненты широко доступны через глобальных дистрибьюторов, включая Digikey. Дополнительные учебные ресурсы включают архивированные слайды конференций Masters за 2004 и 2005 годы, базы знаний сообщества PICList и пошаговые руководства по программированию с рекомендациями по настройке блокировок и перемычек.

Микроконтроллеры Atmel AVR

Компания Atmel разработала архитектуру AVR как прямого конкурента PIC, ориентируясь на работу с регистрами общего назначения и совместимость с компиляторами C для привлечения разработчиков-любителей. Как и PIC, AVR использует гарвардскую архитектуру с раздельной программной флэш-памятью и независимыми секторами EEPROM, предлагая корпуса от компактных 8-выводных до 100-выводных поверхностно-монтажных. Объем флэш-памяти варьируется от 1 килобайта до 256 килобайт, со встроенной EEPROM и 20-мА драйверами GPIO, соответствующими возможностям PIC. Инструментальные цепочки GCC с открытым исходным кодом поддерживают почти все варианты AVR, устраняя дорогие проприетарные лицензионные сборы для студенческих проектов. Экосистема Arduino, построенная вокруг ядер AVR ATmega, резко снизила порог входа для абсолютных новичков, абстрагируя сложные процессы настройки блокировок и перемычек через упрощенные меню IDE.

Критическим недостатком безопасности конфигураций Arduino по умолчанию являются отключенные глобальные настройки блокировки: многие предварительно собранные платы разработки поставляются с непережженными перемычками и незапрограммированными регистрами блокировки, оставляя флэш- и EEPROM-память полностью открытой для считывания через встроенный интерфейс USB. Любой, имеющий физический доступ к незащищенной плате Arduino, может быстро выполнить дамп содержимого флэш-памяти без декапсуляции или сложного глитчинга, что позволяет легко извлечь прошивку и провести обратную разработку пользовательского кода. Любители, создающие коммерческие продукты, должны вручную изменять значения перемычек и активировать полную блокировку в своих скриптах Arduino для блокировки несанкционированного дампа и предотвращения массового клонирования на основе украденной прошивки AVR. Бесплатные сообщества, такие как AVR Freaks, публикуют обширные сравнения архитектур безопасности PIC и AVR, описывая, как перемычки и блокировки каждого семейства противостоят попыткам разблокировки и физическому взлому через декапсуляцию.

Intel / NXP 8051 и производные

Оригинальная архитектура Intel 8051 представляет собой одну из наиболее лицензируемых конструкций ядер МК в истории полупроводников, принятую десятками производителей, включая Atmel, NXP, Silicon Labs и Ramtron, с сильно кастомизированными обновлениями памяти и периферии. Современные варианты 8051 интегрируют флэш, EEPROM и даже ферроэлектрическую FRAM-память, а также высокоскоростные АЦП и режимы пониженного энергопотребления, доступны в сверхминиатюрных 3x3 мм 11-выводных QFN-корпусах от Silicon Labs. Большинство любителей испытывают трудности с поиском оригинальных 8051 через стандартных дистрибьюторов по сравнению с PIC и AVR, хотя Digikey ведет полный каталог моделей NXP LPC и Silicon Labs 8051. Реализации безопасности сильно различаются у разных производителей 8051: некоторые бюджетные производные вообще не имеют защитных перемычек, полагаясь только на слабые программные регистры блокировки, которые легко обойти глитчингом последовательного порта для считывания EEPROM и флэш. Промышленные 8051 высокого класса добавляют скрытые перемычки на металлических слоях и многоступенчатые блокировки для сопротивления декапсуляции и дампу, используемым для извлечения прошивки и клонирования.

Freescale / NXP HCS08

Микроконтроллеры HCS08 и RS08 от бывшей Motorola Freescale реализуют чистую фон-неймановскую архитектуру, где флэш, ОЗУ и все периферийные устройства совместно используют единое 64-килобайтное адресное пространство, что является редким выбором среди недорогих 8-разрядных семейств. Исторически чипы Freescale было трудно приобрести в небольших партиях, но теперь Digikey и другие ритейлеры предлагают полный ассортимент недорогих плат разработки и DIP-вариантов HCS08. Система безопасности Freescale сочетает многоступенчатые OTP-перемычки со слоистой защитой регистров блокировки; полная активация требует пережигания набора перемычек перекрестной верификации наряду с записью глобальных флагов ограничения доступа. Если настроены только регистры блокировки без соответствующего программирования перемычек, глитчинг напряжения во время выборки при включении может временно разблокировать МК и позволить выполнить полный дамп флэш до повторной активации защиты. Инвазивная декапсуляция кристалла HCS08 включает удаление пластмассовой упаковки для доступа к массивам перемычек, после чего лазерная абляция сбрасывает пережженные перемычки и навсегда отключает все внутренние механизмы блокировки для неограниченного считывания и извлечения прошивки. Обратная разработка восстановленного кода HCS08 позволяет производителям подделок создавать полностью функциональную прошивку для нелицензионного массового производства.

Texas Instruments MSP430

Линейка микроконтроллеров MSP430 от TI завоевала репутацию благодаря сверхнизкому энергопотреблению для устройств с батарейным питанием, используя 16-разрядную архитектуру фон Неймана. Ранние поколения MSP430 выпускались только в поверхностно-монтажных корпусах, недоступных для макетирования на макетных платах, но новые модели предлагают DIP-корпуса, подходящие для начинающих. Недорогой программатор eZ430 USB упрощает загрузку кода и базовую отладку для студентов, а TI проводит бесплатные онлайн-семинары по настройке безопасности перемычек и блокировок MSP430. Безопасность MSP430 основана на однобанковых OTP-перемычках и энергозависимых регистрах блокировки, которые полностью сбрасываются при отключении питания. Это создает критическую уязвимость: злоумышленники могут многократно включать и выключать питание с инжекцией тактовых сбоев для обхода правил блокировки и выполнения последовательного дампа флэш и EEPROM без декапсуляции. Промышленные варианты MSP430 добавляют защищенные скрытые перемычки и проверку целостности во время выполнения для обнаружения попыток разблокировки и автоматического стирания ключей EEPROM для блокировки полного восстановления кода после частичного считывания.

Ядра ARM Cortex

ARM лицензирует свою 32-разрядную RISC-архитектуру Cortex сотням производителей полупроводников, включая STMicroelectronics, NXP, Atmel и Luminary Micro, создавая широкий спектр МК от крошечных 28-выводных недорогих чипов до высокопроизводительных многоядерных промышленных контроллеров. Ядра Cortex-M доминируют в современном дизайне встраиваемых устройств благодаря сочетанию высоких тактовых частот, большого объема памяти и богатой встроенной периферии, такой как Ethernet и высокоскоростные контроллеры USB. Встроенный стек безопасности ARM реализует двухуровневую защиту с использованием однократно программируемых перемычек и настраиваемых регистров блокировки для обеспечения аппаратного состояния блокировки после производственного программирования. Когда все антиотладочные перемычки пережжены и включена полная защита от считывания, стандартные JTAG/SWD-программаторы не могут выполнить дамп флэш или получить доступ к защищенным разделам EEPROM в нормальных условиях. Злоумышленники, атакующие ARM МК, используют два основных пути: неинвазивный глитчинг напряжения для временной разблокировки логики безопасности при загрузке и полная декапсуляция для доступа к массивам перемычек с последующим лазерным сбросом. После разблокировки они выполняют полный дамп всех энергонезависимых банков памяти, а затем проводят глубокую обратную разработку восстановленного двоичного кода для извлечения проприетарного управляющего кода и алгоритмов аутентификации. Заключительный этап цепочки атак ARM включает модификацию восстановленной прошивки для удаления уникальных идентификаторов перемычек, после чего злоумышленники программируют измененный код на пустые микроконтроллеры ARM для производства полностью функциональных клонов. Хотя ARM предоставляет стандартизированную документацию по настройке перемычек и блокировок, многие недорогие платы разработки на Cortex поставляются с незапрограммированными защитными перемычками, оставляя студенческие прототипы уязвимыми для несанкционированного считывания и извлечения прошивки.

Zilog Z8 и Z80

Семейство 8-разрядных МК Z8 Encore! от Zilog предлагает недорогие полные комплекты разработки стоимостью менее сорока долларов, включая USB-программаторы, встроенные C-компиляторы и платы с кнопками, светодиодными матрицами и ИК-приемопередатчиками. Аппаратное обеспечение Z8 интегрирует флэш и EEPROM, а также несколько портов UART и многоканальные АЦП, с корпусами от 8 до 80 выводов. Модель безопасности Zilog основана на одноступенчатых регистрах блокировки с ограниченным резервированием перемычек, что делает чипы уязвимыми для глитчинга загрузчика, позволяющего выполнить дамп EEPROM без декапсуляции. Поскольку ресурсы сообщества Z8 значительно меньше, чем у PIC или AVR, меньше руководств охватывают правильное программирование перемычек и активацию постоянной блокировки, оставляя большинство студенческих проектов на Z8 уязвимыми для считывания и обратной разработки для клонирования.

Встраиваемые модули и готовые платы MCU

Предварительно собранные встраиваемые модули объединяют распаянное ядро микроконтроллера, поддерживающие кварцевые генераторы, стабилизаторы питания и предварительно записанные загрузчики на компактных печатных платах. Популярные примеры включают Parallax Basic Stamp и платы Arduino, которые устраняют необходимость в отдельном программаторе и сложной разводке для начинающих. Основное преимущество этих модулей — резкое сокращение времени разработки, так как пользователи пишут код высокого уровня без управления низкоуровневыми задачами настройки регистров или перемычек. Ключевой недостаток с образовательной точки зрения — ограниченное обучение безопасности: большинство готовых модулей скрывают слои блокировки и перемычек от пользователей, оставляя новых разработчиков в неведении о уязвимостях считывания и дампа до тех пор, пока они не создадут собственное производственное оборудование. Кроме того, предварительно записанный код загрузчика, хранящийся во флэш-памяти модуля, может стать целью извлечения прошивки, если защитные механизмы базового МК не настроены производителем модуля. Производители подделок часто обратно разрабатывают популярные встраиваемые модули с помощью декапсуляции и полного дампа памяти для создания недорогих клонов с клонированной проприетарной прошивкой.

Конкурсы проектов, бесплатные образцы и этические аспекты безопасности

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

Заключительные рекомендации с приоритетом безопасности

При выборе микроконтроллера для образовательных целей учитывайте три основных фактора: совместимость периферии с целевыми проектами, доступные средства разработки и надежную встроенную аппаратную безопасность, включая независимые перемычки и настраиваемые регистры блокировки. Отдавайте предпочтение семействам МК с обширными публичными руководствами по активации постоянной блокировки и программированию перемычек для предотвращения случайного раскрытия пользовательского кода для несанкционированного считывания и дампа. Избегайте сверхдешевых безымянных микроконтроллеров, в которых отсутствуют защитные перемычки, так как эти незащищенные чипы становятся легкой мишенью для декапсуляции, разблокировки, извлечения прошивки, обратной разработки и массового клонирования злоумышленниками. Выбирая хорошо документированные основные архитектуры, такие как AVR, PIC и Cortex-M, и полностью активируя все заводские слои безопасности после программирования, любители могут защитить свой проприетарный встраиваемый код на всех этапах прототипирования и коммерческого развертывания.

  • Список микроконтроллеров Atmel для принтеров, доступных для обратной разработки в Mikatech:
  • Полная серия AT89xx: взлом микроконтроллеров: AT89C51 AT89C52 AT89S52 AT89S53 AT89S54 AT89S58 AT89S64 AT89C1051 AT89C2051 AT89C4051 AT89C55 AT89C55WD AT89C5131A AT89C51WD AT89C51ED2 AT89C51CC01 AT89S51 AT89C51CC02 AT89C51CC03 AT89C51RB2 AT89C51RC AT89C51RD2 AT89C51RD-CM AT89C51RC2 AT89C51ID2 AT87C5101 AT89C1051U AT89C2051X2 AT89C5130AM AT89C5130A AT89C5131AL AT89C5131AM AT89C51AC3 AT89C5132 AT89C51AC2 AT89C51CC03C AT89C51SND1C AT89C51CC03U AT89C51IC2 AT89C51RE2 AT89C51SND2 AT89LP2051 AT89LP2052 AT89LP213 AT89LP214 AT89LP216 AT89LP4051 AT89LP4052 AT89LP828 AT89LP428 AT89LS51 AT89LS52 AT89LV51 AT89LS53 AT89LS8252 AT89LV52 AT89LV55 AT89S2051 AT89S4051 AT89S8252 AT89S8253 ...

  • Полная серия AT90xx: взлом микроконтроллеров: AT90S1200 AT90S2323 AT90S2343 AT90S2331 AT90S4433 AT90S8515 AT90S8535 AT90S4414 AT90S4434 AT90S2313 90S1200 90S2323 90S2343 90S2331 90S4433 90S8515 90S8535 90S4414 90S4434 90S2313 ...

  • Полная серия AT90CAN/PWM/USB/xx: чтение микроконтроллеров: AT90CAN32 AT90CAN64 AT90CAN128 AT90PWM2 AT90PWM216 AT90PWM2B AT90PWM3 AT90PWM316 AT90PWM3B AT90USB1286 AT90USB1287 AT90USB162 AT90USB646 AT90USB647 AT90USB82 ...
  • Полная серия AT91SAMxx: взлом прошивки: AT91SAM9XE512 AT91SAM9XE256 AT91SAM9XE128 AT91SAM7S64B AT91SAM7S32B AT91SAM7SE512 AT91SAM7SE256 AT91SAM7SE32 AT91SAM7XC512 AT91SAM7XC256 AT91SAM7XC128 AT91SAM7X512 AT91SAM7X256 AT91SAM7X128 AT91SAM7S161 AT91SAM7S512 AT91SAM7S256 AT91SAM7S128 AT91SAM7S64 AT91SAM7S321 ...

  • Полная серия ATTinyxx: взлом прошивки: ATtiny4 ATtiny5 ATtiny10 ATtiny11 ATtiny12 ATtiny13 ATtiny15 ATtiny20 ATtiny22 ATtiny24 ATtiny25 ATtiny26 ATtiny261 ATtiny28 ATtiny2313 ATtiny40 ATtiny4313 ATtiny43 ATtiny44 ATtiny45 ATtiny461 ATtiny48 ATtiny84 ATtiny85 ATtiny861 ATtiny87 ATtiny88 ATtiny4A ATtiny5A ATtiny10A ATtiny11A ATtiny12A ATtiny13A ATtiny15A ATtiny20A ATtiny22A ATtiny24A ATtiny25A ATtiny26A ATtiny261A ATtiny28A ATtiny2313A ATtiny40A ATtiny4313A ATtiny43A ATtiny44A ATtiny45A ATtiny461A ATtiny48A ATtiny84A ATtiny85A ATtiny861A ATtiny87A ATtiny88A ATtiny4V ATtiny5V ATtiny10V ATtiny11V ATtiny12V ATtiny13V ATtiny15V ATtiny20V ATtiny22V ATtiny24V ATtiny25V ATtiny26V ATtiny261V ATtiny28V ATtiny2313V ATtiny40V ATtiny4313V ATtiny43V ATtiny44V ATtiny45V ATtiny461V ATtiny48V ATtiny84V ATtiny85V ATtiny861V ATtiny87V ATtiny88V ...

  • Полная серия ATMegaxx: взлом микроконтроллеров: ATmega16 ATmega162 ATmega164 ATmega165 ATmega168 ATmega169 ATmega128 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega328 ATmega48 ATmega32 ATmega324 ATmega325 ATmega3250 ATmega329 ATmega3290 ATmega64 ATmega640 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega88 ATmega8515 ATmega8535 ATmega16L ATmega162L ATmega164L ATmega165L ATmega168L ATmega169L ATmega128L ATmega1280L ATmega1281L ATmega2560L ATmega2561L ATmega328L ATmega48L ATmega32L ATmega324L ATmega325L ATmega3250L ATmega329L ATmega3290L ATmega64L ATmega640L ATmega645L ATmega6450L ATmega649L ATmega6490L ATmega8L ATmega88L ATmega8515L ATmega8535L ATmega16P ATmega162P ATmega164P ATmega165P ATmega168P ATmega169P ATmega128P ATmega1280P ATmega1281P ATmega2560P ATmega2561P ATmega328P ATmega48P ATmega32P ATmega324P ATmega325P ATmega3250P ATmega329P ATmega3290P ATmega64P ATmega640P ATmega645P ATmega6450P ATmega649P ATmega6490P ATmega8P ATmega88P ATmega16A ATmega162A ATmega164A ATmega165A ATmega168A ATmega169A ATmega128A ATmega1280A ATmega1281A ATmega2560A ATmega2561A ATmega328A ATmega48A ATmega32A ATmega324A ATmega325A ATmega3250A ATmega329A ATmega3290A ATmega64A ATmega640A ATmega645A ATmega6450A ATmega649A ATmega6490A ATmega8A ATmega88A ATmega8515A ATmega8535A ...

  • Серия ATFxx: взлом микроконтроллеров: ATF16V8B ATF16V8BL ATF16V8BQ ATF16V8BQL ATF16LV8C ATF16LV8CEXT ATF16V8C ATF16V8CEXT ATF16V8CZ ATF20V8B ATF20V8BL ATF20V8BQ ATF20V8BQL ATF22LV10C ATF22LV10CEXT ATF22LV10CUES ATF22LV10CZ ATF22LV10CQZ ATV22V10 ATF22V10B ATF22V10BQ ATF22V10BL ATF22V10BQL ATF22V10C ATF22V10CEXT ATF22V10CUES ATF22V10CZ ATF22V10CQZ ATF22V10CZUES ATF22V10CQZUES ATF1500A ATF1500ABV ATF1500ABVL ATF1500 ATF1500L ATF1502AS ATF1502ASL ATF1502ASV ATF1502ASVL ATF1504AS ATF1504ASVL ATF1508 ATF1508AS ATF1508ASV ATF2500C ATF2500CL ATF2500CQ ATF2500CQL ATF750C ATF750CEXT ATF750CL ATF750LVC ATF750LVCCEXT ATF750LVCEXT ATF750LVCL ATV2500 ATV2500H ATV2500L ATV2500B ATV2500BL ATV2500BQL ATV5000 ATV5000L ATV750 ATV750B ATV750BL ATV750L ...

  • Серия AT88scxx/90scxx: взлом микроконтроллеров: AT88SC0104 AT88SC0104C AT88SC0204 AT88SC0204C AT88SC0404 AT88SC0404C AT88SC0808 AT88SC0808C AT88SC1003 AT88SC101 AT88SC102 AT88SC1281 AT88SC12816C AT88SC150 AT88SC153 ...

Общие вопросы об извлечении прошивок микроконтроллеров


  • Безопасно ли отправлять оплату в MikaTech?

    Если бы MikaTech была недобросовестной компанией, в интернете за 28 лет истории можно было бы найти массу негативных отзывов о её услугах

    Итак, ответ: ДА! Мы — хорошие люди.

    Почему выбирают Mikatech, нажмите здесь, чтобы узнать


  • Может ли Mikatech взломать микросхемы, не указанные на этом сайте?

    У разных производителей чипов разные номера деталей, но внутреннее ядро может быть выполнено по одной технологии. Было бы невозможно перечислить все номера деталей, к которым применима наша технология, такие как MYSON, STK, FEELING, ANALOG, FUJITSU, NOVATEK, LG/HYNDAI.

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

  • Будет ли защищена моя конфиденциальность?

    Mikatech Innovative Limited понимает важность конфиденциальности своих клиентов. В момент вашего обращения к Mikatech ваша личная информация будет защищена в соответствии с нашими внутренними регламентами, разработанными за годы практики. Mikatech использует эти данные для индивидуализации обслуживания и никогда не раскрывает их третьим лицам по каким-либо причинам.
    По каждому проекту мы удаляем все данные, материалы и коды через 60 дней после передачи файлов — это защищает нас и вашу конфиденциальность.

  • Законно ли пользоваться услугами Mikatech?

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


  • Я отправил вам письмо, почему нет ответа?

    • A. Наш почтовый сервер временно вышел из строя, ваше сообщение не было доставлено в наш почтовый ящик, даже если на экране отображается сообщение об успешной отправке. Пожалуйста, свяжитесь с нами снова.
    • B. Наш email распознаётся как спам вашим почтовым сервером, поэтому наш ответ был отклонён или перенаправлен в папку спама. Пожалуйста, удалите наш адрес из списка спама или проверьте папку спама, или используйте другой email для связи, например Gmail.
    • C. Ваше письмо распознано как спам нашим почтовым сервером и помещено в папку спама. Пожалуйста, используйте другой email для связи.



    Услуги разблокировки MCU


    время взлома микроконтроллера

    Лет

    28 +
    страны взлома микроконтроллеров

    Стран

    110 +
    клиенты по атакам на микроконтроллеры

    Клиентов

    5000 +
    разблокированные проекты микроконтроллеров

    Проектов

    60000 +