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

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

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

О компании MikaTech

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

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

Обратная разработка программируемых вентильных матриц (FPGA)

  • Программируемая вентильная матрица (FPGA) — это интегральная схема, предназначенная для конфигурирования заказчиком или разработчиком после изготовления, отсюда и термин «программируемая в полевых условиях». Конфигурация FPGA обычно задаётся с помощью языка описания аппаратуры (HDL), аналогично тому, как это делается для специализированных интегральных схем (ASIC) (ранее для задания конфигурации использовались принципиальные схемы, как и для ASIC, но сейчас это встречается всё реже). Современные FPGA обладают большими ресурсами логических вентилей и блоков RAM для реализации сложных цифровых вычислений. Поскольку проекты на FPGA используют очень быстрый ввод-вывод и двунаправленные шины данных, проверка корректности временных параметров валидных данных в пределах времени установки и удержания становится сложной задачей. Трассировка (floor planning) позволяет распределить ресурсы внутри FPGA для соблюдения этих временных ограничений.[1] FPGA могут использоваться для реализации любой логической функции, которую может выполнить ASIC. Возможность обновления функциональности после отгрузки, частичная перенастройка части проекта[2] и низкие затраты на разработку по сравнению с ASIC (несмотря на обычно более высокую удельную стоимость) дают преимущества для многих приложений.[3]

    FPGA содержат программируемые логические компоненты, называемые «логическими блоками», и иерархию реконфигурируемых соединений, которые позволяют «соединять» блоки друг с другом — примерно как множество (изменяемых) логических вентилей, которые можно соединять во множество различных конфигураций. Логические блоки могут быть настроены для выполнения сложных комбинационных функций или просто простых логических вентилей, таких как И и исключающее ИЛИ. В большинстве FPGA логические блоки также содержат элементы памяти, которые могут быть простыми триггерами или более полными блоками памяти.[3]

    Некоторые FPGA имеют аналоговые функции в дополнение к цифровым. Наиболее распространённой аналоговой функцией является программируемая скорость нарастания и выходная способность каждого вывода, позволяющая инженеру устанавливать медленные скорости на слабо нагруженных выводах, которые в противном случае звенели бы неприемлемо, и устанавливать более высокие, быстрые скорости на сильно нагруженных выводах высокоскоростных каналов, которые в противном случае работали бы слишком медленно.[4][5] Ещё одной относительно распространённой аналоговой функцией являются дифференциальные компараторы на входных выводах, предназначенных для подключения к дифференциальным каналам передачи сигналов. Некоторые «смешанные сигнальные FPGA» имеют интегрированные периферийные аналого-цифровые преобразователи (АЦП) и цифро-аналоговые преобразователи (ЦАП) с блоками аналоговой обработки сигналов, позволяющими им работать как система на кристалле.[6] Такие устройства стирают грань между FPGA, которая оперирует цифровыми нулями и единицами на своей внутренней программируемой коммутационной структуре, и программируемой аналоговой матрицей (FPAA), которая оперирует аналоговыми значениями на своей внутренней программируемой коммутационной структуре.


  • Список микроконтроллеров Xilinx FPGA для обратной разработки в Mikatech:
  • Серия XCxx: защита копирования микропроцессора, расшифровка: X9536 XC9572 XC95108 XC95144 XC95288 XC95216 ...

    Серия XCxxXL: обратная разработка микроконтроллеров: X9536XL XC9572XL XC95108XL XC95144XL XC95288XL XC95216XL ...


  • Дополнительная информация
  • Программируемая вентильная матрица (FPGA): технология, безопасность и обзор обратной разработки

    1. История и происхождение

    Экосистема FPGA эволюционировала из ранних программируемых полупроводниковых компонентов, включая ПЗУ и ПЛУ, которые поддерживали как заводское программирование, так и конфигурирование в полевых условиях. Эти ранние устройства имели фиксированные жестко соединённые вентильные межсоединения, лишённые динамической гибкости маршрутизации, которая определяет современные FPGA. Чтобы удовлетворить потребность в крупномасштабных реконфигурируемых аппаратных средствах, Управление надводных вооружений ВМС США профинансировало проект Стива Кассельмана в конце 1980-х годов для создания системы с 600 000 реконфигурируемых вентилей, что привело к патентованной архитектуре, заложившей основу для современных программируемых логических устройств большой плотности. Основные теории для логических матриц и блочных структур были определены в патентах 1985 года Дэвида У. Пейджа и ЛуВерна Р. Петерсона, составив теоретический фундамент современного программируемого проектирования.

    В 1985 году основатели Xilinx Росс Фримен и Бернард Вондершмитт выпустили XC2064 — первый коммерчески успешный FPGA. В отличие от предыдущих ПЛУ, он имел полностью программируемые логические вентили и гибкие соединения, что ознаменовало рождение коммерческого рынка FPGA. XC2064 содержал всего 64 конфигурируемых логических блока с двойными 3-входными LUT, что по современным меркам является скромной спецификацией. Фримен позже был введён в Национальный зал славы изобретателей за это революционное достижение. Xilinx доминировала на рынке до середины 1990-х годов, когда появились конкуренты, такие как Actel, захватившие почти 18 процентов мирового рынка.

    В 1990-х годах наблюдался быстрый прогресс в сложности и объёмах производства FPGA. В начале десятилетия FPGA были ограничены телекоммуникационной и сетевой инфраструктурой. К концу 1990-х годов улучшенная плотность и экономическая эффективность расширили их использование в автомобильной, промышленной и потребительской встраиваемой электронике. Такому широкому внедрению способствовали уменьшение технологических норм, интегрированные DSP-возможности и упрощённая интеграция на уровне платы для сценариев совместного проектирования со встроенными MCU и микроконтроллерами.

    2. Современная гибридная архитектура FPGA

    Доминирующей современной тенденцией является интеграция традиционной логической структуры FPGA со встроенными процессорными ядрами для создания системы на программируемом кристалле. Эта концепция зародилась в проекте Burroughs SB24 1982 года, который объединял реконфигурируемую логику CPU на одном кристалле. Сегодняшние коммерческие реализации включают Xilinx Zynq-7000 с двухъядерным ARM Cortex-A9 с частотой 1,0 ГГц, Altera Arria V с двухъядерным ARM-процессором с частотой 800 МГц и Atmel FPSLIC, сочетающий ядро AVR с программируемой логикой. Actel SmartFusion дополнительно интегрирует ядро Cortex-M3, встроенную флэш-память, ОЗУ и аналоговую периферию в структуру FPGA на основе флэш-памяти.

    Запущенный в 2010 году, Xilinx Zynq-7000 определил категорию All Programmable SoC, объединив аппаратное обеспечение ARM-микроконтроллера с логикой FPGA для снижения порога разработки для инженеров-встраивальщиков. Изготовленный по 28-нм техпроцессу, он объединяет последовательную обработку ПО и параллельное аппаратное ускорение, отвечая на растущую сложность современных встраиваемых проектов. Монолитная интеграция снижает энергопотребление, минимизирует межсоединения на плате, уменьшает стоимость компонентов и повышает надёжность системы, поскольку большинство отказов электроники происходит из-за соединений на уровне платы, а не из-за внутренних дефектов кристалла.

    Разработчики также могут реализовать программные процессорные ядра, такие как MicroBlaze, Nios II и Mico32, полностью в логических ресурсах FPGA вместо использования аппаратных макроядер. Современные FPGA поддерживают частичную перенастройку во время выполнения, что позволяет реализовать реконфигурируемые вычисления, где аппаратная логика динамически адаптируется к требованиям задач. Помимо традиционных FPGA, гибридные устройства, такие как Stretch S5000, объединяют программно-конфигурируемые процессорные массивы и логику, подобную FPGA, на одном кристалле для обеспечения адаптивной вычислительной производительности.

    3. Рост плотности, масштаб рынка и сравнение с ASIC

    Плотность вентилей FPGA росла экспоненциально на протяжении десятилетий: 8192 вентиля в платформе Burroughs 1982 года, 9000 вентилей в устройствах Xilinx 1987 года, 600 000 вентилей в военно-морском прототипе 1992 года и миллионы вентилей к началу 2000-х годов. Коммерческий рынок вырос с 14 миллионов долларов в 1987 году до более чем 385 миллионов в 1993 году, 1,9 миллиарда в 2005 году и прогнозируемых 2,75 миллиардов в 2010 году. Количество запусков проектов на FPGA в мире выросло с 80 000 в 2005 году до 90 000 в 2008 году, что отражает рост популярности в отрасли.

    Исторически FPGA отставали от ASIC по скорости, энергоэффективности и плотности логики, требуя в 40 раз большей площади, в 12 раз большей динамической мощности и работая на трети скорости эквивалентных ASIC-реализаций. Современные семейства, такие как Xilinx Virtex-7 и Altera Stratix, сократили этот разрыв, конкурируя с производительностью ASIC при меньших затратах на материалы и возможности перенастройки на лету. Сложные проекты, ранее требовавшие 6–10 дискретных ASIC, теперь могут быть объединены в одном современном FPGA.

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

    4. Основные различия между CPLD и FPGA

    Различие между CPLD и FPGA носит в первую очередь архитектурный характер. CPLD используют жёсткие логические матрицы сумм произведений в сочетании с ограниченным количеством тактируемых регистров, обеспечивая предсказуемые временные задержки и высокое отношение логики к соединениям при ограниченной гибкости проектирования. FPGA, напротив, являются маршрутно-доминирующими, предлагая гораздо большую гибкость проектирования, но более сложное временное замыкание для разработчиков. На практике FPGA предоставляют гораздо большие ресурсные возможности и обычно содержат умножители, память и высокоскоростные интерфейсы SERDES, что редко встречается в CPLD.

    Ключевое аппаратное различие заключается в энергонезависимости: большинство CPLD имеют встроенную флэш-память для хранения конфигурации и мгновенного включения. Традиционные FPGA на основе SRAM полагаются на внешнее хранилище, что делает их уязвимыми для атак считывания во время начальной загрузки, что напрямую связано с рабочими процессами обратной разработки и извлечения прошивки для встраиваемых микроконтроллерных систем.

    5. Безопасность FPGA, обратная разработка и векторы аппаратных атак

    Безопасность FPGA представляет уникальные компромиссы по сравнению с ASIC и защищёнными микроконтроллерными устройствами. Пустые кристаллы FPGA не содержат фиксированной логики во время производства, что снижает риск внедрения вредоносного аппаратного обеспечения. Однако традиционные FPGA на SRAM подвергают свой битовый поток воздействию при загрузке из внешней флэш-памяти, создавая уязвимости, которые злоумышленники используют для дампа содержимого флэш-памяти и несанкционированного извлечения данных. Современные производители смягчают это с помощью 256-битного шифрования битового потока AES и аутентификации для внешнего хранилища.

    FPGA на основе флэш-памяти, такие как Microsemi ProAsic 3 и Lattice XP2, хранят конфигурацию внутри, устраняя внешнее воздействие битового потока без обязательного шифрования. Эти устройства также обеспечивают устойчивость к одиночным сбоям (SEU) для космических применений, повышая надёжность в экстремальных условиях. Для заблокированных коммерческих FPGA и MCU-устройств безопасность обеспечивается специальными регистрами блокировки и программируемыми аппаратными перемычками, активирующими глобальное состояние блокировки для блокировки несанкционированного доступа и зондирования памяти.

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

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

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

    6. Применения, архитектура и проектный поток

    FPGA служат в различных областях, включая DSP, программно-определяемое радио, прототипирование ASIC, медицинскую визуализацию, компьютерное зрение, криптографию и промышленные системы обнаружения. Первоначально использовавшиеся как простая клеевая логика на PCB для замены CPLD, теперь они функционируют как полноценные SoC после интеграции специализированных умножителей в конце 1990-х годов. Традиционно используемые для малосерийных продуктов из-за премиальной стоимости программируемого вентиля, современные экономические условия расширили их применение на массовые потребительские рынки.

    Ключевые вертикальные приложения охватывают авионику DO-254, телекоммуникационную обработку основной полосы, автомобильные информационно-развлекательные системы, кодирование видео для вещания, маршрутизацию центров обработки данных, суперкомпьютеринг HPC, промышленное управление двигателями и медицинское сканирующее оборудование. Ранний майнинг криптовалют также использовал преимущества параллельных вычислений FPGA до перехода на ASIC-майнеры.

    Стандартная архитектура FPGA состоит из сетки конфигурируемых логических блоков, периферийных контактных площадок ввода-вывода и однородных каналов маршрутизации. Логические ячейки обычно включают LUT, полный сумматор и триггер; современные высокопроизводительные устройства используют 6-входные LUT для повышения эффективности. Выделенные глобальные сети маршрутизации управляют тактовыми сигналами с низким дрожанием отдельно от общих дорожек соединений. Сегменты маршрутизации заканчиваются в коммутационных блоках, которые могут быть соединены в цепочки для формирования длинных трактов сигналов по всей матрице.

    Встроенные аппаратные блоки, включая DSP-умножители, банки памяти и трансиверы, улучшают производительность по сравнению с логическими эквивалентами. FPGA критически важны для предкремниевой верификации ASIC и разработки прошивки, ускоряя вывод на рынок новых микросхем. Производители, включая Xilinx и Tabula, разработали 3D-стековые FPGA на кремниевых промежуточных слоях для повышения плотности без увеличения размера корпуса.

    Стандартный проектный поток FPGA использует VHDL или Verilog для ввода проекта, затем синтез, размещение и трассировку, временной анализ и симуляцию для генерации конфигурационного битового потока. Битовый поток загружается через JTAG или внешнюю память. Высокоуровневые инструменты, такие как LabVIEW, упрощают программирование, а предварительно созданные IP-ядра ускоряют разработку. Проектные группы проводят RTL-, вентильный и послетрассировочный временной анализ для проверки функциональности перед развёртыванием.

    7. Технология производства и производители

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

    Xilinx и Intel (Altera) контролируют более 80 процентов мирового рынка FPGA, предоставляя бесплатное программное обеспечение для платформ Windows и Linux. Нишевые конкуренты включают специалиста по маломощным решениям Lattice Semiconductor, ориентированного на безопасность Microsemi, высокоскоростной Achronix и ориентированного на портативные устройства QuickLogic. Архитектура FPGA с временным мультиплексированием Tabula 2010 года предложила оптимизацию плотности через виртуализированное совместное использование логических ресурсов.

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


  • Безопасно ли отправлять оплату в 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 +