Содержание статьи
info
Статья написана по мотивам доклада Демида Узенькова — специалиста компании ИНФОРИОН. Выступление состоялось на конференции RuCTFE 2020. За помощь в подготовке публикации редакция благодарит команду «Хакердом».
Как ты помнишь, у ламповых приемников не было никаких прошивок, а единственное, что могло помешать твоему любопытству, — это анодное напряжение, которое, впрочем, хотя бы не нападало на тебя само. Сейчас же все по‑другому: мне попадались устройства, которые агрессивно противодействовали мне с самого начала, еще на этапе разборки корпуса. С него мы и начнем.
Вскрытие
Первое, что тебя может ждать на пути к заветной памяти с прошивкой, — это хорошо закрытый корпус. Вроде бы никаких проблем: взял крестовую отвертку… Постой, а точно ли крестовую? Сейчас существует минимум пара десятков форм головок винтов, и, конечно, далеко не все они откручиваются нормальными человеческими инструментами. Для разборки одного устройства, например, мне пришлось надфилем выпиливать из плоской отвертки нужную форму.
www
О трудностях с винтами можно почитать в статье на Egear.
Допустим, ты подобрал (или сделал) отвертку нужной формы. Молодец! Открутил винты, поднял крышку, послышался треск текстолита — и устройство можно отправлять на помойку. Все потому, что плата в твоем гаджете не просто болтается внутри корпуса, а сложным образом объединена с разными его частями. Обычно это делается с помощью специальных защелок, которые вставляются в отверстия платы, а при разборке корпуса ломают ее, делая дальнейшее изучение бесполезным.
Или треск не послышался. Тогда ты подключаешься к тому, что обнаружил, читаешь память, а читаются одни нули. Как такое могло произойти? Современные технологии позволяют производить крохотные SMD-фотоэлементы, вроде фототранзисторов, которые обычно применяются в такой защите. Когда устройство обнаруживает, что на его плату попадает хоть немного света (даже через маленькое отверстие в корпусе), прошивка контроллера стирается, а тебе остается нефункциональное устройство. И хорошо, если защита не спалит чего‑нибудь физически!
info
В некоторые устройства, например блоки питания компьютеров, производители встраивают сигнальную дымовую шашку, которая сообщает о поломке. При ее срабатывании ароматный синий дым отправит тебя в магазин за новым блоком питания.
Дело в том, что непривычный к подобным фокусам взор не может сразу отличить фототранзистор от того же светодиода, да и привычный тоже вряд ли с ходу справится. Если вообще заметит.
Осмотр платы
Если вскрытие не показало, что пациент умер от вскрытия, я сначала осматриваю плату в поисках пинов отладочных интерфейсов — обычно это JTAG или UART. Главная проблема не в том, что нужные контакты могут быть в очень неожиданных местах, а в том, что обычно они отключены. Конечно, даже в 2021 году все еще хватает уникумов, которые отправляют в прод устройства с включенным UART, но количество таковых стремительно падает.
Если тебе не повезло — вариантов немного: или плакать в подушку, или искать чип памяти на борту и читать его непосредственно.
И вот с этим тебя ожидает уйма интересного! Думал, нужно просто вытащить восьминогую микруху в DIP-корпусе, похожую на старый чип с BIOS? Как бы не так! Сейчас есть минимум четыре относительно широко применяемых вида памяти, и некоторые из них могут быть похожи друг на друга так, что не различишь.
Память
Прежде чем я расскажу, что и как делать с памятью, давай сначала разберемся, какая она вообще бывает и как ее отличить от других компонентов на плате.
По опыту процессор (на скриншоте выше по центру) обычно квадратной формы и исполняется в BGA, а память прямоугольная и делается в SOP-корпусах.
Часто в ультрапортативных вычислительно мощных устройствах (смартфонах, например) используется бутерброд из процессора и памяти — так меньше размеры и задержки при работе. Форм‑фактор, конечно, BGA — просто потому, что ничего другого в крохотный корпус запихнуть нельзя.
ROM — постоянную память — отличить довольно легко. Предположим, чип с ней ты уже нашел. Теперь давай разберемся, какая она бывает.
Нас интересует EEPROM (Electrically Erasable Programmable Read-Only Memory), FRAM (сегнетоэлектрическая память) и NOR/NAND flash — они тебе уже и так знакомы. Из них ты мог не слышать только о FRAM — ее начали применять около пяти лет назад, так что она еще не особо популярна.
EEPROM
Среди особенностей этой памяти — побайтовые чтение и запись. Такая память самая долговечная: по расчетам, она может сохранять информацию в течение примерно двухсот лет! Но за надежность приходится платить — главным образом объемом, с которым у этого вида памяти все плохо: типичный объем такого чипа измеряется в килобайтах. Из‑за низкого объема для хранения прошивок этот тип памяти почти не применяется. Ну а раз заговорили о минусах — стоит и о низкой скорости сказать.
Ресурс ячейки — около миллиона циклов перезаписи. По сравнению с современными ячейками NAND, у которых этот показатель находится в пределах нескольких десятков тысяч циклов, EEPROM-память просто нереально надежная.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»