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

Опубликовано: 01.09.2018

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

Клонирование чипов AVR Atmel.

Взлом МК PIC18F1320

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

Как Считать Прошивка с Pic

Я купил четыре PIC18F1320 и начал их мучать. Вот так выглядит PIC18F1320 в первозданном, не раскуроченном виде:

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

 

Недолгое обследование поверхности чипов позволило выявить некоторые характерные участки микроконтроллера, показанные ниже:

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

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

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

Разница заключается в том, что во flash-памяти для стирания информации достаточно электрических импульсов, в то время как в УФ-ППЗУ для того чтобы «выгнать» электроны с плавающего затвора необходимы фотоны с высокой энергией. Для этого необходим ультрафиолет с длинной волны примерно 250 нм. Для того, чтобы УФ-излучение не слишком сильно ослабевало, применяются кварцевые стекла (те самые окошечки на старых микросхемах ПЗУ).

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

Я провел эксперимент, в котором запрограммировал PIC-контроллер последовательными значениями от 0x00 до 0xFF, и затем проэкспонировал его в моем УФ-ППЗУ стирателе, пока принимал душ и проверял почту.

Когда я извлек контроллер из стирателя, то обнаружил, что flash-память действительно была очищена и вернулась в изначальное состояние (все значения 0xFF), и что защитные fuse-биты так же были деактивированы. Так же следует учитывать, что УФ-излучение действует и на EEPROM-память.

 

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

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

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

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

 

Это фото микроконтроллера внутри ПЗУ-стирателя (синее свечение вокруг контроллера обусловлено работой УФ-лампы). Микроконтроллер закреплен под углом в антистатическом материале.

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

 

Это фото кристалла с прикрепленной маской над областью flash-памяти. Используя эту технику я наконец смог сбросить защитные fuse-биты без стирания основной программы микроконтроллера. Этим же способом можно стирать только некоторую часть flash-памяти. Ура!

Замечания

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

Так же хочется заметить, что во всенародно любимых микроконтроллерах AVR fuse-биты имеют похожую структуру (точно так же перепрограммируются), что позволяет надеяться, что описанная методика пригодна и для них! 

Новости автомира
Не заводится Ниссан Альмера Классик, N16 и G15 на холодную, стартер крутит
1225 Просмотров Если ваш автомобиль Альмера N16 2016 года выпуска не заводится на холодную и на горячую, то причина может скрываться как в электрической цепи, так и в топливной системе. И причин может

Почему не заводится ваз 2106
Опубликовано: 02.11.2017 НЕ ЗАВОДИТСЯ МАШИНА ЧТО ДЕЛАТЬ сами с ключами Вообщем машинка постояла 2 дня. Прихожу - пробую завести, а не заводится. Посмотрел подумал. Посомтрел топливный фильтр - сухой.

Приора не заводится: причины и пути их устранения
Проблемы с запуском мотора автомобиля Лада Приора возникают в случае неисправности одного либо нескольких элементов системы зажигания машины. Повод для их появления – искра, необходимая для воспламенения

Плохо заводится на горячую карбюратор ВАЗ 2109
Плохой ГОРЯЧИЙ ЗАПУСК летом!!! А дело все в Бензине! ПЛАВАЮТ холостые обороты, ДОЛГО заводится --- ПОДКАПЫВАЕТ во вторую камеру! Скажи НЕТ парам бензина и ПЛОХОМУ ЗАПУСКУ в жару! Доработка крыши кастрюли!

Kia Spectra не заводится и стартер не крутит (Rio и Ceed): причины и решение проблемы
Стартер – один из важнейших узлов автомобиля. Благодаря ему осуществляется запуск двигателя . Поэтому для успешного запуска нужно следить за его исправностью. Если Киа Спектра не заводится, стартер

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

Ответы@Mail.Ru: ВАЗ-2109 Есть искра, и заливает свечи, но машина не заводится. В чем проблема??
Остальные ответы Алексадр Хохленко Ученик (233) плохо что карбюратор, свечи заливает большей обьём подачи бензина. смотри дросельную заслонку и винт холостого

ВАЗ-2107. Инжектор не заводится: возможные причины и способы решения
Несмотря на развитие автоиндустрии, классические модели ВАЗ до сих пор пользуются огромным спросом в странах СНГ. Последние модели «Классики», а именно ВАЗ-2107, оснащались инжекторной системой впуска.

Не заводиться!
Всем доброго дня!!! Может кто сталкивался с такой проблемой!? Honda HR-V 2000г. Была сырая погода, подъехал к дому заглушил, через

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

Все новости
Новости партнеров
rss