Объявление

Свернуть
Пока нет объявлений.

Обход встроенной защиты PIC-микроконтроллеров

Свернуть
X
Свернуть

  • Обход встроенной защиты PIC-микроконтроллеров

    Взлом МК PIC18F1320

    Я подумал, что было бы неплохо попробовать что-нибудь из тех техник взлома микроконтроллеров семейства PIC, о которых я слышал. Обычно PIC-микроконтроллеры имеют некоторое количество так называемых fuse-бит, которые служат для защиты от чтения или модификации каких-то частей памяти. Однако бывают случаи, когда возникает необходимость прочитать содержимое уже запрограммированного и защищенного контроллера (на законных основаниях). Типичный пример — потеря компанией технической документации на устройство, либо увольнение тех людей, которые изначально разрабатывали защищенную прошивку микроконтроллера. Такое так же часто случается, когда компания хочет обновить линейку своих продуктов. Ну, сами понимаете, есть еще некоторые ситуации, когда такие навыки могут пригодиться.
    Я купил четыре PIC18F1320 и начал их мучать. Вот так выглядит PIC18F1320 в первозданном, не раскуроченном виде:
    Нажмите на изображение для увеличения. 

Название:	native_state.jpg 
Просмотров:	1 
Размер:	97.2 Кб 
ID:	1929 />

    Первое, что предстоит сделать, это внять верхнюю часть корпуса, чтобы стали доступны кремниевые внутренности микроконтроллера. Хотя существует достаточно много любительских способов сделать это, но обычно они основаны на применении азотной или серной кислоты. Во-первых, это, скорее всего, не те вещи, которые вы очень хотите видеть рядом с собой. Во-вторых, их непросто достать, поскольку, например, азотная кислота является одним из компонентов для изготовления взрывчатых веществ. Я решил, что самый простой и надежный способ — отправить микроконтроллеры в лабораторию анализа отказов, такую как MEFAS, и за $50 и 2 дня получить на руки уже «обезглавленные» компоненты. Для этого проекта я удалил компаунд с трех микроконтроллеров. Два из них остались полностью рабочими, а один лишился корпуса полностью, т.е. остался только сам чип. Это было продиктовано конструктивными особенностями моего микроскопа при больших увеличениях.


    Нажмите на изображение для увеличения. 

Название:	opened_state.jpg 
Просмотров:	1 
Размер:	110.3 Кб 
ID:	1930 />
    Недолгое обследование поверхности чипов позволило выявить некоторые характерные участки микроконтроллера, показанные ниже:
    Нажмите на изображение для увеличения. 

Название:	fullchip_labels.jpg 
Просмотров:	1 
Размер:	340.5 Кб 
ID:	1931 />

    Видны (по часовой стрелке): 8 KB flash-памяти, источник опорного напряжения, зарядовый насос для программирования flash/EEPROM памяти, 256 байт EEPROM памяти, втроенные таймеры и цепи тактирования, вычислительное ядро, ПЗУ с микрокодом, массив с fuse-битами, 256 байт ОЗУ, АЦП.
    Одна структура сразу привлекла мое внимание: ряд металлических экранов над транзисторами, которые располагались в правильном порядке, и количество которых совпадало с количеством fuse-бит. Полное перекрытие элементов металлическими экранами на кремниевых кристаллах встречается очень редко, и само собой такие элементы привлекают к себе внимание, т.к. содержат что-то крайне важное.
    Нажмите на изображение для увеличения. 

Название:	security_fuses.jpg 
Просмотров:	1 
Размер:	2.43 Мб 
ID:	1932 />

    Немного подумаем об этих металлических экранах. Для чего они нужны? Во-первых, вспомним некоторые интересные факты о технологии flash (этот тип памяти применяется в том числе и в PIC-микроконтроллерах для хранения fuse-бит). Flash-технология подразумевает использование транзисторов с плавающим затвором, очень похожие на те, что применялись в старых микросхемах ПЗУ с ИФ-стиранием (вы же помните 2616-е в керамическом корпусе и с кварцевым стеклом?). И во flash, и в УФ-ППЗУ данные сохраняются путем инжектирования электронов на плавающий затвор при помощи тоннельного эффекта, где эти электроны могут находиться десятилетиями. Дополнительные электроны в плавающем затворе создают заметные изменения в характеристиках транзистора.
    Разница заключается в том, что во flash-памяти для стирания информации достаточно электрических импульсов, в то время как в УФ-ППЗУ для того чтобы «выгнать» электроны с плавающего затвора необходимы фотоны с высокой энергией. Для этого необходим ультрафиолет с длинной волны примерно 250 нм. Для того, чтобы УФ-излучение не слишком сильно ослабевало, применяются кварцевые стекла (те самые окошечки на старых микросхемах ПЗУ).
    Важный вывод, который можно сделать из вышеуказанных фактов: flash память тоже может быть стерта при помощи УФ-излучения, т.к. она имеет практически ту же транзисторную структуру, что и УФ-ППЗУ устройства. Корпус устройств с flash-памятью обычно мешает попаданию ультрафиолета на поверхность кристалла, но так как наш PIC микроконтроллер теперь лишен пластиковой верхушки корпуса, то мы может применить УФ-излучение и посмотреть, что из этого выйдет.
    Я провел эксперимент, в котором запрограммировал PIC-контроллер последовательными значениями от 0x00 до 0xFF, и затем проэкспонировал его в моем УФ-ППЗУ стирателе, пока принимал душ и проверял почту.
    Когда я извлек контроллер из стирателя, то обнаружил, что flash-память действительно была очищена и вернулась в изначальное состояние (все значения 0xFF), и что защитные fuse-биты так же были деактивированы. Так же следует учитывать, что УФ-излучение действует и на EEPROM-память.

    Нажмите на изображение для увеличения. 

Название:	flashdiagram.gif 
Просмотров:	1 
Размер:	5.2 Кб 
ID:	1933 />

    Ясно, что металлические пластины над защитными fuse-битами как раз служат защитой от того, чтобы сбросить их отдельно от flash-памяти программ.

    Картинка иллюстрирует проблему (и ее решение), с которой я столкнулся. Для того чтобы стереть информацию на транзисторе flash-памяти, сильное УФ-излучение должно достигать его плавающего затвора. А металлические экраны препятствуют этому, эффективно отражая УФ-лучи.
    Однако, благодаря разности между коэффициентами преломления света для оксида и кремния, свет, падая под некоторым углом, будет отражаться от его поверхности. Чтобы получше понять этот эффект можете прыгнуть в бассейн и посмотреть на воду почти на уровне глаз. Вода будет обладать очень хорошей отражательной способностью как раз из-за разницы коэффициентов преломления воды и воздуха. Это называется полное внутреннее отражение.
    Это отражение как раз можно использовать, чтобы заставить УФ-излучение отражаться от металлической поверхности экрана и падать обратно на плавающий затвор транзистора. Итак, поворачивая PIC-микроконтроллер внутри ПЗУ-стирателя, я могу направить достаточно света для того чтобы он, отразившись в области транзистора flash-памяти, вызвал его стирание. После нескольких попыток я разработал технологию, которая кажется работает вполне неплохо.

    Нажмите на изображение для увеличения. 

Название:	chip_in_eraser.jpg 
Просмотров:	1 
Размер:	47.8 Кб 
ID:	1934 />
    Это фото микроконтроллера внутри ПЗУ-стирателя (синее свечение вокруг контроллера обусловлено работой УФ-лампы). Микроконтроллер закреплен под углом в антистатическом материале.
    Но все это не может защитить от стирания нужных данных в той части flash-памяти, где хранится программа микроконтроллера. Для того чтобы предотвратить стирание этих данных используется сплошная маска, которая была очень аккуратно вырезана из изоленты и прикреплена к кристаллу с помощью двух пинцетов, микроскопа и недрогнувшей руки ) Изолента эффективно блокирует прохождение ультрафиолета, тем самым защищая закрытую область памяти от стирания, а так же поглощает отраженный от кремниевой подложки ультрафиолет.

    Нажмите на изображение для увеличения. 

Название:	chipWithTape_sm.jpg 
Просмотров:	1 
Размер:	151.8 Кб 
ID:	1935 />
    Это фото кристалла с прикрепленной маской над областью flash-памяти. Используя эту технику я наконец смог сбросить защитные fuse-биты без стирания основной программы микроконтроллера. Этим же способом можно стирать только некоторую часть flash-памяти. Ура!

    Замечания

    Очевидно, что описанный способ подходит только для тех устройств, которые содержат перепрограммируемые fuse-биты. Если биты защиты программируются лишь однократно (а такое бывает), то такая методика не подходит. В этих устройствах просто пережигаются тонкие проводники на кристалле. Однако мой коллега сказал, что и на этот случай разработаны свои методы борьбы (я думаю, восстанавливают контакт каким-то схожим микрохирургическим образом). Знаю так же, что эта операция стоит ой как недешево.
    Так же хочется заметить, что во всенародно любимых микроконтроллерах AVR fuse-биты имеют похожую структуру (точно так же перепрограммируются), что позволяет надеяться, что описанная методика пригодна и для них!

      Возможность размещать комментарии к сообщениям отключена.

    Метки статей

    Свернуть

    Меток пока нет.

    Новые статьи

    Свернуть

    • «NO EXCUSES» — специальная программа компании MOTOROLA
      admin
      Дмитрий Панфилов
      «NO EXCUSES» — специальная программа компании MOTOROLA

      Ни для кого не секрет, что микропроцессоры и микроконтроллеры находят самое широкое применение в различных областях науки и техники. Сегодня трудно указать область электроники, где не использовались бы микроконтроллеры. Количество простейших применений, требующих интеллектуального управления процессом, возрастает лавинообразно. Реализация гибких алгоритмов управления на базе микроконтроллеров дает широкому кругу разработчиков уникальный инструмент для создания «интеллектуальных» систем управления. Умение разумно его применять во многом определяет успех оборудования в конкурентной борьбе на рынке.

      MOTOROLA штурмует трехмиллиардный рубеж

      Статистика гласит, что наибольшую долю рынка встраиваемых систем управления занимают восьмиразрядные микроконтроллеры. Здесь показателен...
      10.02.2017, 14:56
    • Частотомер на PIC16F873 с двух строчным ЖКИ способный измерять частоты
      admin
      alt="" />Частотомер на PIC16F873 с двух строчным ЖКИ способный измерять частоты от 10Гц до 45МГц. Чувствительность по входу около 50мВ, входное сопротивление 250 Ком, входная ёмкость 15пФ. Питание девятивольтная батарея 6F22.В память можно вносить значения, которые будут, прибавлены к входной частоте или вычтены из неё.

      При входной частоте меньше 655.35 КГц вес младшего разряда 10Гц, при входной частоте меньше 6.5535 МГц вес младшего разряда 100Гц, при входной частоте больше 6.5535 МГц вес младшего разряда 1 КГц. Переключение диапазона измерения происходит автоматически.
      Схема прибора изображена на рис.1.Входной сигнал проходит через цепь J3, R8, R9, C7, C6...
      10.02.2017, 14:56
    • Управление нагрузкой 220В переменного напряжения с использованием симисторов
      admin
      Для плавного управления нагрузкой, например, лампой освещения, можно использовать симистор. Открывается симистор током при подачи на управляющий электрод импульса. Закрывается, когда ток, проходящий через него, становится равным нулю, когда переменное напряжение меняет знак.
      ...
      10.02.2017, 14:56
    • Управление модулем Ke-USB24A из Excel
      admin
      Всю прелесть программирования USB модуля Ke-USB24A можно оценить когда встает вопрос о необходимости написания программы на каком-либо не очень широко распространенном языке или для какой-либо среды, которая, казалось бы не предусматривает возможность работы с USB устройствами. Как тут быть? - разбираться с подключением библиотек, вызовами системных функци и т.д.? Все это зачастую бывает сложно. Модуль Ke-USB24A совсем другое дело!...
      10.02.2017, 14:55
    • Управление матрицей 8х8 - легко!
      admin
      Матрица управляется так же как и 7-сегментные индикаторы - динамически. Мега16 портом А управляет одной координатой (выбирает сторку для вывода инфы), порт С - выводит ту самую информацию. Информация берётся из массива.
      />

      />
      Что бы пользоваться редактором, нужно переменную STROKA из примера переименовать в rows_arr.
      Вложения: matrica8x8.fcf_avr (56 Кб) Любители ПИКов, вам не составит труда пореколбасить этот пример под ПИКи. Пришлось себя з...
      10.02.2017, 14:55
    • То, что улучшает нашу жизнь (микросхемы для домашних и игровых устройств)
      admin
      Журнал «Компоненты и технологии» №8 2001 г.
      Ракович Н. Н.

      "В человеке все должно быть прекрасно… и у него в доме тоже"
      (Почти по А. П. Чехову)
      В последнее время при чтении профессиональных электронных журналов и статей, посвященных использованию электронных компонентов, у меня возникло и окрепло унылое ощущение, что вся гигантская индустрия полупроводников существует лишь для создания компьютеров, интеллектуального промышленного оборудования и прочих столь же серьёзных изделий. Полное осознание этой тенденции произошло после знакомства с продукцией фирмы Holtek. Приятно удивило большое количество микросхем, которые не только улучшают быт или делают жизнь более безопасной, но и не дадут соскучиться при избытке свободного времени.
      Итак, что же предлагает Holtek для разработчиков бытовой электроники?
      Отдельной линейкой представлены микросхемы для цифровых медицинских термометров. Однокристальные КМОП ИС НТ7500, НТ7501, НТ7510 позволяют измерять температуру в диапазоне от +32°С до +42°С с точностью ±0,1°С. В приборах предусмотрена звуковая сигнализация окончания измерения, а автоматическое отключение питания и вывод информации на ЖКИ-дисплей в сочетании с 1,5 В батарейкой делают его очень экономичным. Модели НТ7500 и НТ7501 практически одинаковы, различаясь лишь тем, что в НТ7500 предусмотрены две шкалы (Цельсия и Фаренгейта), а в НТ7501 реализована только шкала Цельсия и функция самотестирования при включении. ИС НТ7510 идентична НТ7500, но при подключении к ней синтезатора речи НТ84018-0D можно создать "говорящий" термометр.
      Термометр фиксирует нездоровье. А причиной его могут стать самые разные проблемы, в том числе и расшалившиеся нервы. Помогая сохранить здоровье, Holtek предлагает семейство кодеров и декодеров, основное назначение которых - системы сигнализации и охраны: защита от взлома, противопожарная сигнализация, управление гаражными воротами, автомобильные охранные системы, системы безопасности, радиотелефоны и другие системы дистанционного управления.
      Рассмотрим кодеры и декодеры серий 212, 312, 318.
      Кодеры серии 212 (НТ12А/НТ12Е) - КМОП БИС для систем дистанционного управления. Они шифруют информацию, содержащую N адресных бит и 12-N бит данных. Каждый вход адреса/данных может быть установлен в одно из двух логических состояний (отсюда название серии). Зашифрованные адреса/данные передаются, начиная со старшего бита, через радиоканал или ИК-канал. Для увеличения функциональной гибкости предусмотрено управление передачей по сигналу ТЕ (НТ12Е) или по сигналам D8-D11. В НТ12Е дополнительно предусмотрен выход 38 кГц для ИК-систем.
      Декодеры серии 212 (НТ12D/НТ12F) - пара к кодерам этой же серии. Они принимают последовательные адреса и данные от кодера по радио- или по ИК-каналу. После троекратной проверки входных данных при отсутствии ошибок эти данные декодируются и поступают на выход. Декодеры серии 212 могут обрабатывать информацию, аналогичную для кодеров (N адресных бит и 12-N бит данных). НТ12D обеспечивает обработку 8 адресных бит и 4 бит данных, а НТ12F используется для декодирования 12-разрядной адресной информации.
      В кодерах серий 312 и 318 каждый вход адреса/данных может быть запрограммирован на три состояния, при...
      10.02.2017, 14:55
    Обработка...
    X